Capybara ajax请求参数

时间:2012-12-13 10:46:39

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

我正在使用capybara来测试我的应用程序的行为。页面上有一些js代码,它们在页面加载时执行。它向服务器发送ajax请求。我想测试该请求的参数,我如何访问它们?

2 个答案:

答案 0 :(得分:0)

您可以使用page.evaluate_script方法执行javascript并获取结果。如果将参数值存储在任何变量中,则可以访问它。

示例:

result = page.evaluate_script('4 + 4');

参考:https://github.com/jnicklas/capybara#scripting

答案 1 :(得分:0)

我认为你不能一次性测试。您可以在测试中使用page_evaluate将值存储在变量中,但这仅适用于简单请求。正如Siddick在上面指出的那样,您可以将ajax调用的值存储在变量中:

result = page.evaluate_script("response_of_your_ajax_call")

只需将response_of_your_ajax_call替换为您的实际ajax即可。这不是集成测试 - 它更接近单元测试你的js。如果您打算以这种方式编写测试,那么我建议您还编写一个测试模拟最终用户触发ajax请求(单击链接,按钮等)的操作。