簡體   English   中英

Java - Wiremock - 多個組件

[英]Java - Wiremock - Multiple Components

我一直在嘗試從 Wiremock 的文檔中獲取本指南:

https://wiremock.org/docs/junit-jupiter/ -高級用法 - 編程

因為我希望能夠同時模擬多個主機(同一主機,本地環境的唯一端口)。 但是我不希望這些 @RegisterExtension 位於我的測試類中,而是位於單獨的文件中,但這樣做 JUnit 不會選擇它們,我不知道為什么。 我會以錯誤的方式去做嗎?

測試代碼:

public class MyTest{
   @Test
   public void testMe(){
      MyIntegration.mock();
   }
}

public MyIntegration{
   @RegisterExtension
   static WireMockExtension wiremock = WireMockExtension.newInstance(wireMockConfig().port(9000)).build();

   public static void mock(){
      var info = wiremock.getRuntimeInfo(); // wireMockServer is null
      wiremock.stubFor(...); // NPE
   }
}

JUnit Jupiter 掃描測試類以@RegisterExtension注釋並在注釋對象上運行生命周期方法,但它不會掃描非測試類,這就是您的示例中未啟動服務器的原因。

你有兩個選擇:

  1. 創建一個包含WireMockExtension實例的基礎 class,然后讓每個測試 class 擴展它。
  2. 在您的集成 class 中,新建一個WireMockServer實例,然后確保在測試用例之前/之后調用它的start()stop()方法。

我的偏好通常是 1) 在這種情況下。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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