簡體   English   中英

Spring 啟動 JUnit 測試 - 如何從 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM