我对整个测试场景很陌生。我一直在阅读有关 BDD 测试的文章(在我的情况下,我正在编写 PHP 应用程序,因此我正在研究 Behat 作为 BDD 框架),我发现它非常有趣。我在网上搜索了一些关于 api 包装器的 bdd 测试的信息,但我发现了很多不同的结果。
我将使用 REST api 为服务编写应用程序。但我还需要编写 PHP api 包装器。所以我的问题是,我应该为包装器编写测试吗?我应该编写什么样的测试?
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 的哪些功能。