如何配置WireMock使用https(和随机端口)?
我试图设置wiremock在随机端口上运行https:
@Rule public WireMockRule wireMockServer = new WireMockRule( WireMockConfiguration.wireMockConfig().dynamicPort().dynamicHttpsPort() );
但是当我使用它并且我调用wireMockServer.httpsPort()
我得到了exception:
java.lang.IllegalStateException: Not listening on HTTPS port. Either HTTPS is not enabled or the WireMock server is stopped. at com.google.common.base.Preconditions.checkState(Preconditions.java:150) at com.github.tomakehurst.wiremock.WireMockServer.httpsPort(WireMockServer.java:184)
如何设置WireMock以使用https?
注意:我使用的是2.14.0版
我使用了WireMockRules
类,让我的测试类inheritance它
import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig; import com.github.tomakehurst.wiremock.junit.WireMockRule; import org.junit.Rule; import org.junit.rules.TestRule; import org.junit.rules.TestWatcher; import org.junit.runner.Description; public class WiremockRules { @Rule public WireMockRule wireMockRule = new WireMockRule( wireMockConfig().dynamicPort().dynamicHttpsPort() ); }
和我的WiremockTest.java
import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; import static com.github.tomakehurst.wiremock.client.WireMock.get; import static com.github.tomakehurst.wiremock.client.WireMock.stubFor; import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo; import org.junit.Before; import org.junit.runner.RunWith; import org.mockito.runners.MockitoJUnitRunner; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.http.HttpStatus; @RunWith(MockitoJUnitRunner.class) @SpringBootTest() public class WiremockTest extends WiremockRules { private String url; @Before public void setup() { url = baseUrl + Integer.toString(wireMockRule.port()) + "/v1/test"; stubFor( get(urlEqualTo(url)) .willReturn( aResponse() .withStatus(HttpStatus.OK.value()) ) ); } }