我目前正在使用Spring MVC开发REST Web服务。
我正在努力寻找在我的WS上进行集成测试的最佳方法。
第一种解决方案:使用放心
第二种解决方案:对控制器进行单元测试,并在服务级别单独执行集成测试
问题:如何在不修改数据库状态的情况下使用rest-assured进行集成测试?
非常感谢。
答案 0 :(得分:1)
为什么不在每次测试之前删除放心的双打和重定向,并将它们重新设置为测试?
RestClient.delete "#{RestAssured::Server.address}/redirects/all"
RestClient.delete "#{RestAssured::Server.address}/doubles/all"
或者你也可以使用不同的双打对GET进行GET和POST / PUT调用,并在这些调用之间使用重定向。
答案 1 :(得分:0)
我不确定,你提出的要求是有道理的。
RestAssured只是一个支持测试的框架。您还可以编写单元测试,它相当于PUT和DELETE(基本上是内部实现),然后修改数据库状态。
或者您只能使用RestAssured发出HEAD和GET请求,而不能通过此修改数据库状态。
如果您保留任何更新,这两个选项都只会测试部分代码路径,因此您的问题与RestAssured或手写单元测试的选择是正交的。
当然,你可以嘲笑你的后端,但要么嘲笑是微不足道的,你没有获得任何洞察力。或者它们很复杂,你需要进行单独的测试,以确保模拟对象符合你的想法。
答案 2 :(得分:0)
为了在REST Spring MVC Web服务上执行集成测试,SpringSource团队提供了一个名为spring-test-mvc的新库,该库现已集成到spring-test中。
http://blog.springsource.org/2012/11/12/spring-framework-3-2-rc1-spring-mvc-test-framework/
出于我的特殊目的,它比Rest-Assured更适应。