Rails应用程序的全栈测试有很多选项。有些使用真正的浏览器,有些是无头的,有些根本不运行javascript。
您使用或推荐哪些工具?为什么?
浏览器模拟器或自动机列表:
测试DSL和框架的列表:
答案 0 :(得分:2)
所有铁路应用都受益于良好的单位和功能测试,无论您使用的是rspec还是shoulda等,都是个人偏好的问题。我是shoulda
的粉丝,主要是因为它提供的上下文块,使得设置测试场景变得更容易和更清晰。
我不认为除非您的应用程序非常重要,否则需要浏览器模拟器/自动机。我建议只使用它们来测试javascript,为此目的,驾驶真正的浏览器比模拟更好。我正在处理的应用程序非常重要,我们正在使用cucumber
和watir
/ firewatir
在Firefox中运行我们的黄瓜测试,用于我们网站上的javascript驱动函数
答案 1 :(得分:1)
在过去的几年里,我在Rails职业生涯中使用过很多东西。
目前在JRuby上开发一个非常大的Rails应用程序,测试覆盖率非常可靠,我们的堆栈如下所示。
单元测试:
功能测试:
答案 2 :(得分:1)
在我正在进行的项目中,为了测试整个堆栈,我们使用Cucumber和capybara作为驱动程序。
前端非常重,我尝试了几个无头浏览器驱动程序(capybara-envjs和akephalos),但两者都错误地在真正的浏览器中传递了测试失败。
答案 3 :(得分:1)
我正在使用Cucumber + Capybara结合使用selenium-webdriver和机架测试驱动程序。 Capybara很好地抽象了由selenium-webdriver驱动的浏览器内测试之间的区别,这些测试实际上可以测试JavaScript在浏览器中的工作情况,但需要一段时间才能运行并测试只针对由控制器/动作,运行速度更快,但不测试JavaScript。这意味着可以在浏览器中运行同一组场景和步骤定义,而无需维护重复的步骤定义集。