繁体   English   中英

测试Rails应用程序API客户端

[英]Testing Rails application API client

我们有带有Restful API的Rails应用程序,还有带有该API的client(ActiveResource)的另一个Rails应用程序。

我们如何使用运行该API的原始Web服务器为API客户端创建测试套件(首选Rspec),而不模拟它?

我建立了一个测试套件(使用Cucumber,rspec声明,ruby和FactoryGirl创建对象),该套件在流程中命中API,并在Rails 3应用程序中创建/删除数据库中的对象。

查看我的博客以获取示例和代码: 自动化博客

尝试使用webmock将Rails API应用安装为客户端调用的目标。

参见http://robots.thoughtbot.com/how-to-test-sinatra-based-web-services

您是否考虑过这是否真的是您想要的? 测试套件的重点是测试所有组件,然后测试它们之间的交互。 如果您有良好的单元测试,那么模拟与在集成测试中使用生产数据没有太大不同。

我问的原因是因为使用真实数据有时会带来无法预料的后果。 我的团队过去经常打电话给我们,因为我们像您一样思考,我们想测试真实的东西。 随着我们项目的发展,运行测试所花费的时间变得天文数字。 然后,团队中的一个人不得不花费大量时间寻找所有这些调用并将其模拟出来,这样我们才能及时地构建我们的代码。 (这很困难,但是我们有很多构建脚本可以将我们所有的资产拉到产品堆栈中,在我们的翻译服务中翻译我们的字符串,确保所有测试都通过,等等)

我的建议:编写可靠的单元和功能测试,然后信任您的模拟数据进行集成测试。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM