【问题标题】:Testing JavaScript views in Rails在 Rails 中测试 JavaScript 视图
【发布时间】:2012-07-03 22:22:06
【问题描述】:

在 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 和集成测试设置单独的测试设置

谁有更好的解决方案?

【问题讨论】:

    标签: javascript ruby-on-rails bdd konacha


    【解决方案1】:

    查看 github 上的 Teaspoon 项目。

    https://github.com/modeset/teaspoon

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

    此外,我与其他使用 Rails 的测试运行者的经验也对它产生了很大影响。

    【讨论】:

    • 茶匙+1。我真的很喜欢它的覆盖支持。
    【解决方案2】:

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

    【讨论】:

    • 这是我们为一个相当大的应用程序所做的。它可以工作,但是非常很慢。你只是真的想在你绝对需要的地方这样做。
    猜你喜欢
    • 1970-01-01
    • 2010-09-20
    • 1970-01-01
    • 1970-01-01
    • 2015-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多