Я пытаюсь получить wiremock, чтобы вернуть статус 200 с простым запросом в своих модульных тестах, однако этот модульный тест всегда возвращает ошибку 404.Тесты Wiremock всегда получают 404 по простому запросу
Как это можно решить?
import static com.github.tomakehurst.wiremock.client.WireMock.*;
import static org.junit.Assert.assertTrue;
import com.github.tomakehurst.wiremock.junit.WireMockRule;
import org.junit.Rule;
import org.junit.Test;
import java.net.HttpURLConnection;
import java.net.URL;
public class WiremockTest {
@Rule
public WireMockRule wireMockRule = new WireMockRule(8089); // No-args constructor defaults to port 8080
@Test
public void exampleTest() throws Exception {
stubFor(get(urlPathMatching("/my/resource[0-9]+"))
.willReturn(aResponse()
.withStatus(200)
.withHeader("Content-Type", "text/xml")
.withBody("<response>Some content</response>")));
int result = sendGet("http://localhost/my/resource/121");
assertTrue(200 == result);
//verify(getRequestedFor(urlMatching("/my/resource/[a-z0-9]+")));
}
private int sendGet(String url) throws Exception {
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
// optional default is GET
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
return responseCode;
}
}
}
Когда я установил порт на 8089, он работает хорошо. Однако для большей картины у меня есть встроенный Tomcat Server, который работает во время моих модульных тестов. И когда я даю правилу wiremock тот же порт, что и сервер tomcat, тогда я получу ошибку привязки, поскольку порт уже используется сервером tomcat. Есть ли способ заставить это работать для запросов, поступающих в порт tomcat? – dwardu
С правилом правила Wiremock по умолчанию я не думаю, что то, что вы просите, может быть сделано в контексте Junit. Могут быть другие доступные варианты, но я не очень хорошо знаком с этим контекстом. Мое самое лучшее предложение состояло бы в том, чтобы пройти документацию по wiremock и посмотреть, не может ли что-нибудь соответствовать вашему прецеденту. http://wiremock.org/getting-started.html – Jeremiah