Web服务和XHR的集成测试

发布于 2024-10-02 18:07:30 字数 359 浏览 3 评论 0原文

我正在使用 Steak 和 Capybara 进行集成测试。我还想测试模型的序列化输出(使用 XML 和 JSON 格式的 Web 服务)。问题是 JSON 只能通过使用 XML HTTP 请求来使用。所以水豚的访问方法行不通。我似乎也无法在验收测试中访问 xhr 方法(不知道为什么,因为我需要在 Acceptance_helper.rb 中使用正常的spec_helper.rb)。

您如何测试网络服务?使用 xhr 方法(在以某种方式需要它之后)?水豚的特殊方法?还有别的事吗?

我还有一些自定义序列化(除了正常的 my_object.to_xml 之外)。我想最好在模型测试中这样做。那么您还会测试这些自定义序列化的 Web 服务输出吗?

I am using Steak and Capybara to do my integration tests. I also would like to test the serialization output (webservices using XML and JSON format) of my models. The problem is that JSON is only available by using a XML HTTP Request. So Capybara's visit method does not work. It also seems that I don't have access to xhr method in my acceptance tests (not sure why, because I require the normal spec_helper.rb in my acceptance_helper.rb).

How do you test web services? Using the xhr method (after requiring it somehow)? A special method with Capybara? Something else?

I also have some custom serialization (beside the normal my_object.to_xml). I guess it is better to do that in the model tests. Would you then still test the web service output of those custom serializations?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

牵你的手,一向走下去 2024-10-09 18:07:30

您始终可以创建一个“代理”控制器来向 Web 服务发出请求并打印结果。显然,它应该仅在测试环境中可用。然后,您的 Capybara 测试将访问代理并测试页面内容。

You can always create a "proxy" controller that makes requests to the web service and prints the result. It should be available only in test environment, obviously. Then your Capybara test visits the proxy and tests page content.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文