Ruby on rails 3 Capybara和Ajax测试不起作用
我使用ajax提交表单。当表单提交出现错误时,将使用ajax、jquery再次呈现表单 我试图用水豚和Rspec测试这种行为,如下所示: 描述“电路板创建失败”,类型=>:请求doRuby on rails 3 Capybara和Ajax测试不起作用,ruby-on-rails-3,rspec2,capybara,Ruby On Rails 3,Rspec2,Capybara,我使用ajax提交表单。当表单提交出现错误时,将使用ajax、jquery再次呈现表单 我试图用水豚和Rspec测试这种行为,如下所示: 描述“电路板创建失败”,类型=>:请求do it "should not create a birthday board" do Capybara.default_wait_time = 5 lambda do visit root_path fill_
it "should not create a birthday board" do
Capybara.default_wait_time = 5
lambda do
visit root_path
fill_in "Name", :with => ""
select('1967', :from => "board_birthday_1i" )
select('October', :from => "board_birthday_2i" )
select('30', :from => "board_birthday_3i" )
click_button("Start the surprise")
page.should have_selector('div#error_explanation')
page.find_field('Name').value
end.should_not change(Board, :count)
end
end
结果如下:
Failure/Error: page.should have_selector('div#error_explanation')
expected following output to contain a <div#error_explanation/> tag:
Failure/Error:page.应该有_选择器('div#Error _explauration'))
预期以下输出包含标记:
但事实上,我在页面上有一个错误解释div
为什么这个测试失败了
提前谢谢。您是否尝试过等待几秒钟,直到收到响应 在之前添加睡眠(3)
page.should have_selector('div#error_explanation')
再次测试。
这可能会有所帮助。您是否在某处添加了:js=>true选项以便执行ajax?我的gem文件中同时包含了Capybara和webrat。我认为是webrat和水豚之间的冲突导致了这个问题