2012-12-13 134 views
1

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

回答

0

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

例子:

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

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

+0

我需要访问包含在ajax请求中的参数,而不是存储在某处。我需要访问last_request对象或其他东西... – VadimAlekseev

0

我不认为你可以在一杆进行测试。您可以在测试中使用page_evaluate将值存储在变量中,但仅适用于简单请求。作为Siddick指出上面,你可以你的Ajax调用的值存储在一个变量:

result = page.evaluate_script("response_of_your_ajax_call") 

只需用您的实际阿贾克斯更换response_of_your_ajax_call。这不是集成测试,它更接近单元测试你的js。如果你打算按照这种方式编写测试,那么我还会推荐编写一个测试来模拟最终用户如何触发ajax请求(点击链接,按钮等)。