Zar*_*doz 24 integration-testing rspec ruby-on-rails acceptance-testing cucumber
对于我的Rails Web应用程序的集成测试,我使用Steak(类似Cucumber).Steak的规格位于名为spec/acceptance的文件夹中.Steak/Cucumber现在用于集成或验收测试吗?我一直认为这是不同的东西.
Ste*_*nev 76
首先,关于术语的说明:术语集成测试在TDD社区中有点模糊.根据您是来自Java还是Rails(使用Test :: Unit),您可能会理解不同的东西.在Rails中(使用Test :: Unit),集成测试是测试完整堆栈的测试,而功能测试则是测试控制器的测试.Java社区中的大多数人(至少通过我的观察)会认为这是另一种方式.我个人更喜欢调用端到端测试验收测试,而测试则涉及系统的几个层(但不是所有) - 集成测试.总而言之,这完全取决于您所处的文化.
至于Cucumber和Steak - 两者都是允许开发风格的框架,称为行为驱动开发(简称BDD).关键是你有两个级别的测试:
在BDD中,您从一个失败的端到端测试开始(被称为"大齿轮"),然后您开始使用RSpec("低速档")开始实现功能测试,直到您获得结束 - 到底测试通过.通过这种方式,端到端测试正在推动您的单元测试,从而推动您的实施.主要好处是避免范围蔓延 - 您最终不会实现您不需要的用户可见功能(因为您没有为其编写端到端测试).
如果你想了解更多相关信息,我听说行为驱动开发维基百科的文章非常好.另外,RSpec书.
因此,Cucumber和Steak都是允许您在"高速档"中编写测试的框架.不同的是风格 - 黄瓜让你用自然语言编写测试.这有几个好处.
缺点包括学习如何很好地应用它并且你必须多写一点(功能和步骤定义)有点棘手.我已经发现,如果你已经做了一段时间,第二个并不是真正的问题,因为你得到了一系列可重复使用的步骤,可以让你更快地编写下一个功能.
另一方面,牛排更简单,而且它是Ruby.你失去了使用英语的所有好处,但你可以少写,它会更快(有点)执行.
在底线,您可以使用两者来编写驱动开发的端到端测试.
| 归档时间: | 
 | 
| 查看次数: | 9940 次 | 
| 最近记录: |