如何检查 Ajax 请求是否在 Capybara Rspec 中发送?
How to check if Ajax request was sent in Capybara Rspec?
我有一个搜索界面,可以在您键入时进行即时搜索。它被优化为只在需要时发送 AJAX 请求,所以我想测试它是否正确。
如何检查 Ajax 请求是否已发送? (任何请求都足够好).. 也可以检查 Ajax 请求是否被中止(在其他测试用例中)
如果您使用的是 jQuery,jQuery.active function 会回答您的问题。
我敢肯定,如果不在您的库代码中进行某种跟踪,就无法通过原始 XHR 请求获得此信息。
作为一个元点,当您坚持断言用户可观察到的行为时,水豚的效果最好。您能否验证特定搜索 results/suggestions 出现,而不是检查是否发生了 ajax 请求?
对于水豚,你不需要。正如 Xavier 指出的那样,Capybara 专注于模拟用户。用户不知道 ajax 请求等,他们只看到结果。如果您有一个微调器(或其他一些可视项目)在请求发生时显示在屏幕上,那么您可以检查它是否存在(因为用户会看到它)或者您可以检查是否显示了正确的结果。
如果您正在尝试测试 AJAX 请求的实际优化行为,那么您可能希望使用 jasmine/jasmine-ajax.
之类的东西来查看 JS 测试
我有一个搜索界面,可以在您键入时进行即时搜索。它被优化为只在需要时发送 AJAX 请求,所以我想测试它是否正确。
如何检查 Ajax 请求是否已发送? (任何请求都足够好).. 也可以检查 Ajax 请求是否被中止(在其他测试用例中)
如果您使用的是 jQuery,jQuery.active function 会回答您的问题。
我敢肯定,如果不在您的库代码中进行某种跟踪,就无法通过原始 XHR 请求获得此信息。
作为一个元点,当您坚持断言用户可观察到的行为时,水豚的效果最好。您能否验证特定搜索 results/suggestions 出现,而不是检查是否发生了 ajax 请求?
对于水豚,你不需要。正如 Xavier 指出的那样,Capybara 专注于模拟用户。用户不知道 ajax 请求等,他们只看到结果。如果您有一个微调器(或其他一些可视项目)在请求发生时显示在屏幕上,那么您可以检查它是否存在(因为用户会看到它)或者您可以检查是否显示了正确的结果。
如果您正在尝试测试 AJAX 请求的实际优化行为,那么您可能希望使用 jasmine/jasmine-ajax.
之类的东西来查看 JS 测试