Ruby on rails 如何在Rails中编写快速验收测试

Ruby on rails 如何在Rails中编写快速验收测试,ruby-on-rails,rspec,capybara,acceptance-testing,Ruby On Rails,Rspec,Capybara,Acceptance Testing,我用Java写了一段时间,现在我在Rails上工作了大约一年。我立即被投入到一个有很多规格的大项目中(这对我来说是非常新的,我以前没有使用过很多TDD/BDD技术) 好的,我学习了这个过程,一切都很好,但现在我想知道如何再迈出一步,让我的规格更快。在我们的项目中,我们有很多验收测试,其中我们测试端到端的功能。例如,用户登录,单击某个按钮,出现javascript弹出窗口,然后提交表单。简单的功能,但问题是这些测试非常慢。我们将Rspec与Capybara和Selenium一起使用,因此我们的测试

我用Java写了一段时间,现在我在Rails上工作了大约一年。我立即被投入到一个有很多规格的大项目中(这对我来说是非常新的,我以前没有使用过很多TDD/BDD技术)

好的,我学习了这个过程,一切都很好,但现在我想知道如何再迈出一步,让我的规格更快。在我们的项目中,我们有很多验收测试,其中我们测试端到端的功能。例如,用户登录,单击某个按钮,出现javascript弹出窗口,然后提交表单。简单的功能,但问题是这些测试非常慢。我们将Rspec与Capybara和Selenium一起使用,因此我们的测试必须打开浏览器,模拟用户操作,等待javascripts等


我的问题是:如何以更好、更快的方式做到这一点?我们有很多验收测试,在运行项目中的所有规范后,我们必须等待大约30分钟才能完成。

使用
capybara webkit
,它的速度更快,因为它实际上没有打开站点,它只是在内部模拟流程,检查是否一切正常,比Selenium更快,应该有助于您入门

之前的@Babar答案很好:使用水豚网络工具包;但是你也可以评估幻影+恶鬼。我使用的是phantomJS+poltergeist,所有测试都在提高执行时间,而且现在我可以检测JS错误。

谢谢,我会查看它。但我想知道是否有更好的方法来测试我的应用程序。也许甚至不需要编写这么多的验收测试,使用一些javascript测试框架,围绕控制器/服务进行更多的测试?相信我,我自己讨厌测试,但它必须完成,单元测试很重要,但最终如果前端的脚本不起作用,那么用户体验就会受到影响,端到端测试是最好的方法