我希望在后端基于web2py、前端基于Ember的项目中采用敏捷开发。为此,我想使用行为驱动开发(,BDD)工具,比如Cucumber和Capybara For Rails。一个隐含的要求是,编写用户故事的团队成员应该能够编写和运行BDD测试,而不需要深入了解正在开发的代码。
我认为Cucumber.js与Zombie.js或Selenium相结合是一种很好的方法,但也有Jasmine和Mocha。两者都声称为JavaScript启用BDD测试,但我觉得它们更适合于单元测试,而不是通过模拟实际用户如何与应用程序交互来测试web应用程序。
任何尝试过Cucumber.js、Jasmine或Mocha的BDD的人能分享他们的观点,认为哪一个是使用javascript的BDD更好的选择?
此外,是否还有其他可供考虑的选择?
发布于 2013-01-13 17:35:59
对于完整的BDD测试堆栈,您可以使用:
1) cucumber.js + 硒 + 苏打水 (或其他节点适配器)+ node.js
或
2) cucumber.js + zombie.js + node.js
就我个人而言,我将选择第二个选项,因为cucumber.js在解析了用Gherkin语法编写的场景/特性/步骤定义之后,为您提供了存根javascript代码。您可以使用此代码,另外还可以设置您的僵尸世界,并为您的测试套件提供所有必要的断言助手函数,并且您都已经安装好了。我在selenium中看到的唯一优势是他的Webdriver功能(沙司实验室等)。还有记录功能,但我认为zombie.js中用于驱动测试的语法是非常严格的,也许您不需要selenium提供的所有功能。
关于摩卡和茉莉,如果你想要Gherkin语法,那么没有人会提供这个特性,但是如果您喜欢用Rspec语法风格编写所有测试,那么您可以使用其中的一个而不是cucumber.js来编写测试,这都取决于Gherkin样式对您的重要性。
https://stackoverflow.com/questions/14305806
复制相似问题