[英]Multiple Application Contexts in Spring JUnit test with WireMock
[英]Spring Boot JUnit Test - How to return response from Wiremock
我在 Spring Boot 的 JUnit 測試中通過 wiremock 返回請求的響應時遇到問題。 當我使用微服務時,我必須使用 wiremock 來調用另一個微服務的任何方法。
我想寫一個 wiremock 來從這個過程中獲取令牌值。
我試着寫下這個過程,但我無法完成。 我怎樣才能做到這一點?
@RegisterExtension
static WireMockExtension wireMockserver
= WireMockExtension.newInstance()
.options(WireMockConfiguration
.wireMockConfig()
.port(8080))
.build();
wireMockserver.stubFor(get("/authenticate/login")
.willReturn(aResponse()
.withStatus(HttpStatus.OK.value())
.withHeader("Content-Type", MediaType.APPLICATION_JSON_VALUE)
));
我怎樣才能得到回應?
這是下面顯示的響應。
@Data
@AllArgsConstructor
@NoArgsConstructor
public class JWTResponse {
private String token;
private String type = "Bearer";
private String refreshToken;
private int id;
private String username;
private String email;
private List<String> roles;
}
您可以指示 wire mock 在響應中返回主體。
例如:
JWTResponse expected = podamFactory.manufacturePojo(JWTResponse.class);
wm.stubFor(post(testUrl)
.willReturn(ok()
.withBody(mapper.writeValueAsString(expected))
.withHeader("Content-Type", "application/hal+json")));
其中mapper是ObjectMapper mapper;
我們在這里所做的是在對特定 testUrl 執行發布時返回預期的 object。 由於 object 被轉換為 json,我們需要使用映射器將 object 轉換為相應的字符串表示形式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.