1 回答
TA贡献2051条经验 获得超10个赞
我想“任何”实际上是一个 Mockito.any() 方法?在这种情况下,您可以使用 Mockito.matches("regex")。请参阅文档:https://static.javadoc.io/org.mockito/mockito-core/1.9.5/org/mockito/Matchers.html#matches(java.lang.String)
编辑:事实证明,MockRestServiceServer 使用 Hamcrest 匹配器来验证期望(requestTo、withSuccess 等方法)。
org/hamcrest/Matchers类中还有一个方法matchesPattern(java.util.regex.Pattern pattern),自 Hamcrest 2 起可用,它可用于解决您的问题。
但是在您的项目中,您可能依赖于较旧版本的 Hamcrest (1.3),例如 junit 4.12、最新的 spring-boot-starter-test-2.13 或最后的 org.mock-server .mockserver-netty.3.10.8(传递)。
因此,您需要:
检查项目中 Hamcrest 的实际版本并(如果不是 2+)手动更新此依赖项:https ://mvnrepository.com/artifact/org.hamcrest/hamcrest/2.1
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest</artifactId>
<version>2.1</version>
<scope>test</scope>
</dependency>
更新您的测试:
mockServer.expect(requestTo(matchesPattern(".*exact-example-url.com.*")))
.andExpect(method(HttpMethod.GET))
.andRespond(withSuccess("response", MediaType.APPLICATION_JSON));
添加回答
举报