2012-12-15 38 views
3

我对整个测试场景都很陌生。我一直在阅读关于BDD测试(在我的案例中,我正在编写PHP应用程序,所以我正在研究Behat作为一个BDD框架),我觉得它非常有趣。 我在网上搜索了一些关于api包装的bdd测试的信息,但是我发现了很多不同的结果。我应该为休息api包装器编写测试吗?

我打算用REST api编写一个服务的应用程序。但我也需要编写PHP api包装器。所以我的问题是,我是否应该为封装器编写测试以及我要写什么类型的测试?

+2

你应该为所有*你的*代码编写测试。第三方代码应由其自己的维护人员进行测试,如果不是,则应该谨慎在项目中使用它。 – rdlowrey

+0

第三方代码?不确定我在追随。我正在为api包装器和使用包装器的应用程序编写代码。我没有写的唯一东西显然是REST服务。我的第二个问题是,我应该为api包装器写什么样的测试? – moleculezz

+0

如果你会发布一些代码(或者至少是一些伪代码),看看你的API封装类是什么样的,我实际上可以写一个完整的答案来谈论如何去测试它。 – rdlowrey

回答

0

BDD框架可以工作,但它可能会被证明是脆弱的考虑硒之间可能发生的可能性,你的应用程序使用API​​,以及你的API里面发生了什么。

有这样 http://docs.guzzlephp.org/en/latest/

如果你喜欢其他语言,你可以用骡子ESB做对Web服务API测试的一个伟大的PHP的方式。我发现它非常擅长针对服务或任何HTTP运行自定义任何东西。如果您喜欢groovy或java Mule ESB非常适合直接访问端点以将响应分离并发出有效请求和无效请求。它具有针对各种可能性的尖锐点击界面。如果你的API返回XML,你有很多方法直接解析它。它也适用于JSON。即使您为数据响应创建了自己的格式,您也可以非常轻松地进行深入研究。 Guzzle给你很多同样的东西,但是以一种PHP卷曲友好的方式,但没有尖锐的点击事物。

如果您的REST API所使用的语言和框架有一个体面的单元测试包,那么也要这样做,尤其是在它有意义的地方。我知道你使用的是PHP,我讨厌在php中进行单元测试,但有时你不能用其他方法来验证某些方法在你想保护某些方法时是否正确。

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

这一切都取决于你对自己感到满意的方式以及你的api正在发生的事情的性质以及你认为重要的api功能。

+0

你在这里谈论很多关于API的知识。但我没有制作API。我只是将API用于我的应用程序,而且我已经编写了该API用于我的应用程序的封装器。 – moleculezz

相关问题