赞
踩
修改代码这种方式不太好,会增加冗余代码,项目上线时,还得修改代码
造一个模拟服务器,就可以了
<properties>
<wiremock.version>2.27.2</wiremock.version>
</properties>
<dependency>
<groupId>com.github.tomakehurst</groupId>
<artifactId>wiremock</artifactId>
<version>${wiremock.version}</version>
<scope>test</scope>
</dependency>
代码
@ExtendWith(SpringExtension.class) @SpringBootTest() @Slf4j public class TestGetUserInfo { /** * 模拟服务器 */ WireMockServer wireMockServer; /** * 用户id */ String userId = "1"; /** * 用户信息 */ String userInfo = "userInfo"; @Resource private TestUtils testUtils; /** * 每次测试前,开启一个模拟服务器 */ @BeforeEach void setup() { int port = 8888; System.out.println("当前的模拟server的port是 = " + port); //新建一个WireMockServer对象 wireMockServer = new WireMockServer(options().port(port)); //开启这个对象 wireMockServer.start(); //配置主机地址和端口号 configureFor("localhost", wireMockServer.port()); //配置模拟的接口 stubFor(post(urlEqualTo("/api/v1/" + userId)).willReturn(aResponse().withStatus(200).withBody(userInfo))); } /** * 测试获取用户信息 * * @throws IOException */ @Test() public void testGetUser() { String userInfo = testUtils.testGetUserInfo(userId); System.out.println("userInfo = " + userInfo); } /** * 每次测试结束后,关闭这个测试服务器 */ @AfterEach void teardown() { wireMockServer.stop(); } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。