SpringRunner 與 SpringBootTest
瀏覽人數:878最近更新:
1. 概述
測試對於任何應用程式都至關重要,無論是單元測試還是整合測試。 SpringRunner
和SpringBootTest
類別構成了執行整合測試的基礎。
在本教程中,我們將了解兩者。我們將學習如何在程式碼中使用它們並了解它們的相似點和差異。
SpringRunner
SpringRunner
是SpringJUnit4ClassRunner
類別的別名,適用於基於 JUnit4 的測試類別。它載入 Spring TestContext,透過它 Spring bean 和配置可以與 JUnit 註解一起使用。我們需要 JUnit 4.12 或更高版本才能使用它。
要在程式碼中使用它,請使用@RunWith(SpringRunner.class)
註解測試類別:
@RunWith(SpringRunner.class)
public class SampleIntegrationTest {
@Test
public void test() {
//
}
}
3.SpringBoot SpringBootTest
SpringBootTest
是SpringRunner
的替代方案,可與 JUnit5 搭配使用.
它還用於運行整合測試和載入 Spring TestContext
。
它非常豐富,並透過其註釋參數提供了許多配置。它支援各種 Web 環境模式,例如MOCK, RANDOM_PORT, DEFINED_PORT
和NONE
。我們可以透過在測試運行之前註入到 spring 環境中的註解來傳遞應用程式屬性:
@SpringBootTest(
properties = {"user.name=test_user"},
webEnvironment = MOCK)
public class SampleIntegrationTest {
@Test
public void test() {
//
}
}
在類別層級需要註釋@SpringBootTest
才能執行整合測試。
4. SpringRunner
和SpringBootTest
的比較
在此表中,我們將比較這兩個類別的優缺點。
SpringRunner |
**SpringBootTest** |
---|---|
用於運行整合測試並載入 Spring TestContext | 用於運行整合測試並載入 Spring TestContext |
JUnit 註解也可以使用 | JUnit 註解也可以使用 |
需要JUnit4.12或更高版本 | 需要 JUnit5 或更高版本 |
就配置而言,API 並不豐富 | 提供豐富的API來配置測試配置 |
不建議 | 推薦,因為它支援新功能並且易於使用 |
5. 結論
在這篇文章中,我們了解了SpringRunner
和SpringBootTest
。我們已經學會如何使用它們。我們也對它們進行了比較,了解了它們的差異和相似之處。
我們應該使用SpringBootTest
因為它支援最新的 JUnit,但每當需要使用 JUnit 4 時, SpringRunner
就是選擇。
本作品係原創或者翻譯,採用《署名-非商業性使用-禁止演繹4.0國際》許可協議