我正在尝试测试一个使用 Javascript 进行 ajax 调用的页面。
我可以看到控制器中的操作被正确调用,并且 200 被发送回 html 页面。但不知何故,在javascript中,触发了错误函数而不是成功函数...... Javascript工作正常,但就像它不等待来自服务器的答案......来自服务器的答案被发送回几毫秒的事。
我没有在 Rails 中使用数据库。
我注释掉了config.use_transactional_fixtures = true
在我的配置中,我添加了以下内容:
Capybara.register_driver :selenium do |app|
Capybara::Selenium::Driver.new(app, :browser => :chrome)
end
Capybara.javascript_driver = :chrome
使用最新的 rails 版本、最新的 Capybara 版本和最新的 rspec 版本...
很难调试问题,因为我不知道幕后到底发生了什么。我认为这与超时问题有关,但我不确定。
顺便说一句,我的 javascript 看起来像这样:
$.ajax({
type:'POST',
dataType:'json',
url:url,
data:data,
silent:true,
loader:$("input#x, input#y").next(".loader"),
success:function (response) {
...
},
error:function (jqXHR, textStatus, errorThrown) {
redirectToLoginPage(jqXHR.status);
}
});
任何人都可以向我指出一个 rspec 和 capybara 进行 Ajax 调用的示例吗?