2012-07-03 25 views
12

在Rails中测试JavaScript视图的最佳方式是什么?在Rails中测试JavaScript视图

所以我们可以说我有一个名为/users/new的页面,其中包含一个可以执行某些操作的窗体。我希望拥有它,这样我就可以提交表单,并且JavaScript测试工具可以让我知道该页面是否打破。做这个的最好方式是什么?

我所遇到的三个选项来进行测试:

  1. Konacha(最佳工具迄今JS BDD)http://www.solitr.com/blog/2012/04/konacha-tutorial-javascript-testing-with-rails/

  2. JasmineRice(茉莉+滑轨+后卫)https://github.com/bradphelan/jasminerice/

  3. 水豚 Webkit。 https://github.com/thoughtbot/capybara-webkit

前两个基本上那里BDD和孤立的测试。最后一个更多的是我正在寻找的,但我不想为JavaScript BDD和集成测试单独测试设置。

有没有人有更好的解决方案?

回答

5

如果使用的是RSpec的,你可以在一个RSpec集成测试使用水豚:

spec/requests/my_spec.rb: 

describe "my test", :js => true do 
    it "should do something" do 
    visit '/some/path' 

    click_on 'Submit' 

    page.should have_content 'Congratulations!' 
    end 
end 

记得设置Capybara.javascript_driver = :webkitspec_helper.rb

+2

这是我们为一个相当大的应用程序所做的。它可以工作,但是非常慢。你只是真的想在你绝对需要的地方做到这一点。 –

8

检查github上的Teaspoon项目。

https://github.com/modeset/teaspoon

它支持摩卡,茉莉花和QUnit ..具有与PhantomJS headlessly运行您的规格(或硒的webdriver)很好的支持,并允许使用全滑轨资产管道(CoffeeScript中,灯具等) 。

此外,它受到我与其他使用Rails的测试跑步者的经验的很大影响。

+0

茶匙+1。我非常喜欢它的覆盖支持。 –