ruby – 使用Capybara测试纯JavaScript应用程序
发布时间:2020-12-17 02:30:24 所属栏目:百科 来源:网络整理
导读:我在使用Sinatra和Capybara时遇到了一些问题. 我想测试一个纯粹的JavaScript应用程序.这只是Sinatra服务的普通index.html. require "sinatra"get "/" do File.read("public/index.html")end 比方说,我想测试一下这段代码. $("a.link").click(function(){ $(t
我在使用Sinatra和Capybara时遇到了一些问题.
我想测试一个纯粹的JavaScript应用程序.这只是Sinatra服务的普通index.html. require "sinatra" get "/" do File.read("public/index.html") end 比方说,我想测试一下这段代码. $("a.link").click(function(){ $(this).replaceWith("New String"); }); <a href="#link" class="link">Click me!</a> 然后测试看起来像这样. describe "requests",js: true do it "should display a message" do visit "/" click_link "Click me!" page.should have_content("New String") end end 问题是没有任何反应.根据Ryan Bates screencast,如果将js:true添加到describe块,Firefox应该启动并运行测试. 这是我的spec_helper文件. require "rspec" require "capybara" require "capybara/dsl" Capybara.javascript_driver = :selenium require_relative "./../server" Capybara.app = Sinatra::Application Capybara.javascript_driver = :selenium Capybara.default_wait_time = 10 RSpec.configure do |config| config.mock_with :rspec config.include Capybara end 这是运行rspec rspec / request_spec.rb时的输出. requests should display a message (FAILED - 1) Failures: 1) requests should display a message Failure/Error: page.should have_content("New String") expected #has_content?("New String") to return true,got false # ./spec/request_spec.rb:5:in `block (2 levels) in <top (required)>' Finished in 4.38 seconds 1 example,1 failure Failed examples: rspec ./spec/request_spec.rb:2 # requests should display a message 我在Github上创建了一个完整的示例项目,可以在这里找到: 谁知道它失败的原因? 解决方法
Here是
Jonas Nicklas的原始答案.
Here是Github上的一个工作示例. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |