Web服务和XHR的集成测试
我正在使用 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您始终可以创建一个“代理”控制器来向 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.