如何在每次测试之前或之后使Spring Cloud Contract重置WireMock

问题描述 投票:1回答:1

我们正在编写一个Spring Boot应用程序,并使用Cloud Contract WireMock支持来存根支持服务。我们的测试类注释如下:

@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
@AutoConfigureWireMock(port = 0)
public class Tests...

除了一件事之外,这很好用:我们发现Spring Cloud似乎没有在测试之间重置WireMock,特别是删除存根,因此测试没有被正确隔离。当然,您可以使用包含@Beforereset()方法自己完成此操作,但我们想知道这是否是故意的。有没有我们忽略的选项或者必须使用的附加注释?

毕竟,不可能在@BeforeClass方法中定义存根,如果总是执行重置就会消失,所以我们想知道什么是反对开箱即用的?

java spring spring-cloud wiremock
1个回答
1
投票

可以随时重置WireMock服务器,删除所有存根映射并删除请求日志。如果您正在使用任何一个JUnit规则,这将在每个测试用例开始时自动发生。但是你可以通过调用Java中的WireMock.reset()或者发送一个空主体的POST请求来自己做http://<host>:<port>/__admin/reset.

要仅重置存根请求日志完整的存根映射,请向http://<host>:<port>/__admin/mappings.发送DELETE

希望这很有用。

© www.soinside.com 2019 - 2024. All rights reserved.