gpt4 book ai didi

ruby-on-rails - 如何在由 Capybara 提供支持的 rspec 功能测试中发布 json 数据

转载 作者:行者123 更新时间:2023-12-04 13:46:16 27 4
gpt4 key购买 nike

简短的问题

我需要在功能测试中发布 JSON,就像在我的 Controller 测试中一样:

post '/orders.json', params.to_json, format: :json

但是我需要在功能测试中这样做,而且 page.driver.post只发布表单数据。如何在 Capybara 中发布 JSON?

长说明

我有一个(非 Rails)应用程序(我们称之为行星),它将 JSON 发布到我的 Rails 应用程序(称之为星星)以创建记录,然后将用户转发到显示操作的 url。

我正在创建一个功能规范,但由于第一次交互不是 Rails 应用程序的一部分,我需要使用 JSON 模拟它。

我一直在用这个:
page.driver.post '/orders.json', params.to_json

但这似乎以表格形式发布,而我的星球应用程序发布了 JSON。这导致了一些非常时髦的参数问题,其中解析 JSON 为我提供了与表单数据不同的参数。

如何在 Capybara 中发布 JSON?

最佳答案

TL; DR - 你没有

Capybara 旨在模拟用户进行功能测试。这就是为什么 post方法是特定于驱动程序的(page.driver.xxx),实际上并不打算直接供测试使用。用户不能在没有页面提交的情况下提交 POST。因此,如果您确实需要通过功能测试对此进行测试,最好的解决方案是创建一个小型测试应用程序,该应用程序提供一个页面,您可以让 Capybara 访问该页面,该页面将自动(或单击按钮等)让浏览器生成 AJAX发布到被测应用程序并处理响应。

关于ruby-on-rails - 如何在由 Capybara 提供支持的 rspec 功能测试中发布 json 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47591782/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com