如何检查是否在Capybara Rspec中发送了Ajax请求?

时间:2016-09-10 07:52:43

标签: jquery ruby-on-rails ajax rspec capybara

我在您输入时有一个带即时搜索的搜索界面。它被优化为仅在需要时发送AJAX请求,因此我想测试它是否正确执行。

如何检查Ajax请求是否已发送? (任何请求都足够好了)..也可以检查Ajax请求是否被中止(在其他测试用例中)

2 个答案:

答案 0 :(得分:3)

对于Capybara,你不会。正如Xavier所指出的,Capybara专注于模仿用户。用户不知道ajax请求等,他们只看到结果。如果您有一个微调器(或其他可视项目),您在发出请求时会在屏幕上显示,那么您可以检查它是否存在(因为用户会看到它),或者您可以检查是否显示了正确的结果。

如果您正在尝试测试AJAX请求的实际优化行为,那么您可能希望使用jasmine / jasmine-ajax等来查看JS测试。

答案 1 :(得分:2)

如果你正在使用jQuery,jQuery.active function会回答你的问题。

我很确定没有办法在原始XHR请求中使用原始XHR请求,而不需要在库代码中进行某种跟踪。

作为一个元素点,当你坚持主张用户可观察的行为时,水豚的效果最好。您是否可以验证是否出现了特定的搜索结果/建议,而不是检查是否发生了ajax请求?