研究spring cloud合同有一个关于测试statefull服务的问题。
有两项服务:服务器和客户端。 服务器有一个状态,在我的情况下它有用户存储库。我可以使用scenarios测试带有Spring云合约的服务器状态。
我的第二步是使用服务器存根进行客户端测试。在这种情况下,我希望服务器存根与一个(或多个)用户。我可以签订这份合同(只是想象服务总是有用户),但它将是另一个合同。
使用同一合同验证服务器答案(首先是服务器处于零状态)并在客户端测试时将其存根(当我需要存根时)状态)?
UPD 更接近我的情况:我的服务器包含用户,可以在没有客户端参与的情况下创建/更新这些用户。对于组件测试服务器,我创建了合同方案"创建用户"。我想测试客户端,但需要服务器才能包含至少一个用户,即在服务器存根上获得一些特殊状态。在这种情况下我该怎么办?
答案 0 :(得分:1)
是的,所以这个问题的答案是,在拥有控制器时,您应该将所有工作委托给服务。该服务应该被嘲笑。 Spring Cloud Contract是关于合同测试,而不是业务功能的精确复制。您可以在Stephane Nicoll https://spring.io/blog/2016/08/30/custom-test-slice-with-spring-boot-1-4
的优秀博客文章中阅读更多有关这种情况的信息