我正在使用capybara来测试我的应用程序的行为。页面上有一些js代码,它们在页面加载时执行。它向服务器发送ajax请求。我想测试该请求的参数,我如何访问它们?
答案 0 :(得分:0)
您可以使用page.evaluate_script
方法执行javascript并获取结果。如果将参数值存储在任何变量中,则可以访问它。
示例:
result = page.evaluate_script('4 + 4');
答案 1 :(得分:0)
我认为你不能一次性测试。您可以在测试中使用page_evaluate将值存储在变量中,但这仅适用于简单请求。正如Siddick在上面指出的那样,您可以将ajax调用的值存储在变量中:
result = page.evaluate_script("response_of_your_ajax_call")
只需将response_of_your_ajax_call替换为您的实际ajax即可。这不是集成测试 - 它更接近单元测试你的js。如果您打算以这种方式编写测试,那么我建议您还编写一个测试模拟最终用户触发ajax请求(单击链接,按钮等)的操作。