在 Rails 中测试 JavaScript 视图

Testing JavaScript views in Rails

本文关键字:JavaScript 视图 测试 Rails      更新时间:2023-09-26

Rails 中测试 JavaScript 视图(测试页面是否以 JavaScript 为明智)的最佳方法是什么?

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

我遇到了三个测试选项:

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

  2. 茉莉香米(茉莉花 + 导轨 + 护罩) https://github.com/bradphelan/jasminerice/

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

前两个基本上用于BDD和隔离测试。最后一个是我正在寻找的,但我不想为 JavaScript BDD 和集成测试设置单独的测试设置

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

在 github 上查看 Teaspoon 项目。

https://github.com/modeset/teaspoon

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

此外,它在很大程度上受到我与其他使用 Rails 的测试运行者的经验的影响。

如果您使用的是 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

请记住在 spec_helper.rb 中设置Capybara.javascript_driver = :webkit