在Rails中测试JavaScript视图

mat*_*sko 12 javascript bdd ruby-on-rails konacha

在Rails中测试JavaScript视图的最佳方法是什么(测试页面是否适用于JavaScript?)

所以假设我有一个名为的页面/users/new,其中包含一个可以执行某些操作的表单.我想拥有它以便我提交表单,JavaScript测试工具会让我知道该页面是否中断.做这个的最好方式是什么?

我遇到了三个测试选项:

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

  2. JasmineRice(Jasmine + Rails + Guard)https://github.com/bradphelan/jasminerice/

  3. Capybara Webkit.https://github.com/thoughtbot/capybara-webkit

前两个基本上用于BDD和隔离测试.最后一个更适用于我正在寻找的内容,但我不想为JavaScript BDD和集成测试提供单独的测试设置.

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

jej*_*s0n 8

检查github上的Teaspoon项目.

https://github.com/modeset/teaspoon

它支持Mocha,Jasmine和QUnit ..很好地支持使用PhantomJS(或Selenium Webdriver)无头地运行您的规范,并允许使用完整的Rails资产管道(coffeescript,fixture等).

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


Tan*_*ili 6

如果您正在使用RSpec,则可以在RSpec集成测试中使用Capybara:

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
Run Code Online (Sandbox Code Playgroud)

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

  • 这就是我们为一个相当大的应用程序所做的事情.它有效,但*非常慢.你真的只想在你绝对需要的地方做这件事. (2认同)