UJS Rails的在我的网页我有:测试与水豚,硒和RSpec
- >是擦伤另一个网站与UJS提出了Ajax请求内容的形式(远程:真):
<%= simple_form_for @listing, :url => listings_fetch_url, remote: true do |f| %>
<%= f.input :url %>
<%= f.button :submit, id: 'import_button' %>
<% end %>
- >由从形式刮结果填入上述
手动将其作品的另一种形式......
然而W¯¯母鸡我试图自动测试它,它不。 水豚发现提交按钮,点击它,但然后它留在空白页。
下面是测试代码:有以下几种
feature "Listing import" do
scenario "fills in the form fields", js: true do
visit new_search_path
fill_in 'Url', :with => 'www.google.fr'
find('input#import_button').click
expect(page.body).to have_content 'query was'
end
end
的控制器操作:
def fetch
url = listing_params[:url]
@query = Query.new(ScraperService.new({url: url}).perform)
render :fill
end
# Renders an js.erb file
def fill
end
好像硒无法呈现js.erb rspec的文件?
任何帮助表示赞赏!
EDIT由于@ThomasWalpole,我固定一个错误500,其是防止机械化刮网络。内容现在被正确地刮取,但问题仍然存在:点击提交按钮后的页面变为空白,测试结束。 在日志中我有一个漫长的消息:
Could not log "render_template.action_view" event. NoMethodError: undefined method
example_group' for nil:NilClass ["/Users/Greg/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/rspec-rails-3.6.0/lib/rspec/rails/view_rendering.rb:67:in
current_example_group'"
水豚用硒绝对可以渲染的js。 erb文件。看看你的测试。日志文件并查看正在做什么请求,请求什么格式以及响应代码是什么。是否有任何'Query.new(ScraperService.new({url:url})。perform'向应用程序发出另一个请求,在不同的线程中运行等等?如果是,你使用:puma作为你的Capybara服务器(Capybara.server =:puma)? –
感谢提示@ThomasWalpole!日志显示500个服务器错误,这是由'require'webmock/rspec''导致的,它阻止了机械化访问web。 'Query.new ...'没有向应用程序发出另一个请求,也没有在单独的线程中运行。使用Puma并没有改变任何可悲的事情。 请参阅我的更新问题。 – Greg
尝试降级到rspec 3.5.x。 - 可能是一个错误在3.6 –