12

在 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. 水豚Webkit。https://github.com/thoughtbot/capybara-webkit

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

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

4

2 回答 2

8

检查 github 上的 Teaspoon 项目。

https://github.com/modeset/teaspoon

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

此外,它还深受我与其他使用 Rails 的测试运行者的经验的影响。

于 2012-12-27T08:27:47.263 回答
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

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

于 2012-07-06T04:19:41.397 回答