我在我的@SpringBootTest
中使用Wiremock(spring-cloud-contract-wiremock
),所以:
import static com.github.tomakehurst.wiremock.client.WireMock.*;
@SpringBootTest
@AutoConfigureWireMock(port = 0)
class SomeTest {
@Test
void test1() {
Wiremock.stubFor(get(urlPathEqualTo("/endpoint"))
.willReturn(aResponse().withStatus(200))
);
// start test
// assertThat response is 200
}
@Test
void test2() {
stubFor(get(urlPathEqualTo("/endpoint"))
.willReturn(aResponse().withStatus(401))
);
// start test
// assertThat response is 401
}
}
因此,对于两个测试方法,我为同一个请求创建了不同的存根,并且效果很好。
另外,当使用Wiremock时,您可以在src/test/resources/mappings
包中以JSON格式存储存根,但到目前为止,我只能实现这样的结果,即我只能有一个JSON文件来存储存根。
我如何为两个测试方法使用两个单独的JSON,以及如何告诉我的测试方法使用特定的JSON文件来加载Wiremock-stubs?
我正在使用spring-boot-parent 3.1.0
和WireMock的这个maven依赖项:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-contract-wiremock</artifactId>
<version>4.0.2</version>
<scope>test</scope>
</dependency>
3条答案
按热度按时间flvlnr441#
你可以做
fhg3lkii2#
1.使用spring-cloud-contract-wiremock的解决方案:
1.手动创建WireMockServer的解决方案:
json的格式必须如下:
lvmkulzt3#
您可以使用ResponseDefinitionBuilder.withBodyFile(fileName),默认情况下,它将从
src/test/resources
获取源文件