簡體   English   中英

如何在每個@Test之前運行@BeforeClass方法

[英]How to run @BeforeClass method before each @Test

當我手動運行@Tests時,一個接一個-一切都很好。 但是當我一起運行它們時-我遇到了錯誤。 因此,如何在每個@Test之前運行@BeforeClass。 我不能在我的@BeforeClass中使用@Before becorse,我在測試類構造函數中做了一些工作。

測試類的構造函數:

public HttpUtils() {
    this.httpClient = HttpClients.createDefault();
}

課前:

@BeforeClass
public static void init() throws IOException {
    mockStatic(HttpClients.class);
    final CloseableHttpClient closeableHttpClient = createMock(CloseableHttpClient.class);
    when(HttpClients.createDefault()).thenReturn(closeableHttpClient);
}

如果我運行所有測試。 在第二次測試中,我得到了HttpClient,它不像模擬,而是像真實的對象,並且最近有錯誤提示。

使用@Before而不是@BeforeClass 在每次測試之前執行

@Before
public static void init() throws IOException {

使用@Before會使該方法在Test方法之前運行。 超類的@Before方法將在當前類的方法之前運行。

如果要在每個測試類之前執行任何方法,則應使用@Before注釋。 通過使用@BeforeClass批注,您只需在測試類中調用該方法一次。

暫無
暫無

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

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