Le serveur stub de WireMock est une API qui amène la communication HTTP à simuler le port de destination et à renvoyer la valeur de retour attendue.
--Environnement - Java1.8 --Série Spring Boot 2 --WireMock série 2
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class FunctionalTest {
@ClassRule
public static WireMockRule wireMockRule =
new WireMockRule(wireMockConfig().port(8081)
.usingFilesUnderDirectory("src/functionalTest/resources/"));
@Test
système public vide normal() {
stubFor(get(urlEqualTo("/hoge"))
.willReturn(aResponse()
.withStatus(200)
.withBodyFile("hoge.json")))
//Tester le contenu...
}
}
hoge.json
{
"text": "hogehoge"
}
En bref, un serveur stub qui renvoie l'état 200 et hogehoge lors de l'accès à / hoge démarrera sur le port 8081.
En guise de mise en garde, c'est l'endroit où mettre hoge.json.
src/functionalTest/resources/__files/hoge.json
est. J'ai oublié ces __files et je suis devenu accro pendant une heure.
Je vais mettre le code en premier.
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class FunctionalTest {
@Rule
public WireMockRule wireMockRuleHoge =
new WireMockRule(wireMockConfig().port(8081)
.usingFilesUnderDirectory("src/functionalTest/resources/"));
@Rule
public WireMockRule wireMockRuleFuga =
new WireMockRule(wireMockConfig().port(8082)
.usingFilesUnderDirectory("src/functionalTest/resources/"));
@Test
système public vide normal() {
wireMockRuleHoge.stubFor(get(urlEqualTo("/hoge"))
.willReturn(aResponse()
.withStatus(200)
.withBodyFile("hoge.json")
)
);
Resource requestResource = resourceLoader.getResource(ResourceLoader.CLASSPATH_URL_PREFIX + "/fuga.json");
String request = FileUtils.readFileToString(requestResourcePerformance.getFile(), UTF_8);
wireMockRuleFuga.stubFor(post(urlEqualTo("/fuga"))
.withRequestBody(equalToJson())
.willReturn(ok())
);
//Tester le contenu...
}
}
Comme vous pouvez le voir, si vous envoyez fugafuga à / fuga par la poste, vous pouvez ajouter un stub qui ne renvoie que le 200e statut. En guise d'avantage, les vérifications, etc. sont préparées pour chaque règle, vous pouvez donc tester quelle requête POST de quel stub a été appelé et combien de fois.
Recommended Posts