【问题标题】:Should I be writing tests for a rest api wrapper?我应该为 rest api 包装器编写测试吗?
【发布时间】:2012-12-15 13:11:33
【问题描述】:

我对整个测试场景很陌生。我一直在阅读有关 BDD 测试的文章(在我的情况下,我正在编写 PHP 应用程序,所以我正在研究 Behat 作为 BDD 框架),我发现它非常有趣。 我在网上搜索了一些关于 api wrappers 的 bdd 测试的信息,但我发现了很多不同的结果。

我将使用 REST api 为服务编写应用程序。但我还需要编写 PHP api 包装器。所以我的问题是,我应该为包装器编写测试吗?我应该编写什么样的测试?

【问题讨论】:

  • 您应该为所有您的代码编写测试。第三方代码应该由它自己的维护者测试,如果不是,你应该小心在你的项目中使用它。
  • 第三方代码?不确定我是否在关注。我正在为 api 包装器和使用该包装器的应用程序编写代码。我唯一没有写的显然是 REST 服务。我的第二个问题是,我应该为 api 包装器编写什么样的测试?
  • 如果您发布一些代码(或至少一些伪代码)来说明您的 API 包装器类的外观,我实际上可以写一个完整的答案来讨论如何进行测试。
  • 我刚刚开始研究它,所以它还很不完整。但这里是存储库 github.com/moleculezz/serviio-php 的链接
  • 也许“Spec BDD with phpspec”很有意义:phpspec.net 它允许您用自然语言描述 API 的行为。

标签: php testing bdd behat


【解决方案1】:

BDD 框架可以工作,但考虑到 selenium、使用 api 的应用程序以及 api 内部发生的事情之间可能发生的事情,它可能被证明是脆弱的。

有一个很棒的 php 方法可以做到这一点 http://docs.guzzlephp.org/en/latest/

如果您喜欢其他语言,您可以使用 Mule ESB 对 Web 服务 api 进行测试。我发现它非常擅长针对服务或任何 http 运行自定义任何东西。如果您喜欢 groovy 或 java,那么 Mule ESB 非常适合直接到达端点以将响应分开并触发有效和无效请求。它有一个尖尖的点击界面,可提供多种可能性。如果您的 api 返回 xml,您有很多方法可以直接解析它。它也适用于 JSON。即使您为数据响应创建了自己的格式,您也可以相当轻松地深入研究它。 Guzzle 为您提供了很多相同的功能,但以 php curl 友好的方式提供,但没有尖锐的点击内容。

如果您用于 REST api 的语言和框架有一个不错的单元测试包,那么也可以这样做,尤其是在有意义的地方。我知道您正在使用 php,并且我讨厌 php 中的单元测试,但有时当您想保护某些方法时,您无法以任何其他方式验证某些方法是否正确。

我已经看到使用 Jasmine 或 qUnit 等 javascript 测试框架创建的成功的 api 测试套件。

这完全取决于您对什么感到满意,以及您的 api 的性质以及您认为需要涵盖的 api 的哪些功能。

【讨论】:

  • 您在这里谈论了很多关于 API 的内容。但我没有制作 API。我只是将 API 用于我的应用程序,并且我已经为该 API 编写了一个包装器以在我的应用程序中使用。
猜你喜欢
  • 2014-10-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-05
  • 1970-01-01
  • 2021-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多