![](/img/trans.png)
[英]JUnit5 Test coverage for catch block of a Spring Boot Controller
[英]How to order execution of controller test classes in Junit5 / spring boot?
在我的實體中,我有雙向的一對多關系,我想用 mock.mvc 編寫集成測試。 但是,在添加父級之前,我無法添加子級。 出於這個原因,我想訂購我的測試類,例如首先運行 AirportControllerTest,其次是 RouteControllerTest,最后是 FlightController。
有可能嗎,或者如何處理這種情況?
對於這個特定的問題,分層順序比順序順序更好。
如果您使用的是 JUnit 5,則可以使用 @Nested 測試。 https://junit.org/junit5/docs/current/user-guide/#writing-tests-nested
以先運行父測試 class 的方式嵌套您的測試類,並且嵌套測試可以使用父測試創建的測試對象。
這是一個高級示例:
class AirportControllerTest{
@Test
void testAirportController() {
//Add parent here
}
@Nested
class RouteControllerTest {
@Test
void testRouteController() {
//Use test objects from parent here
}
@Nested
class FlightControllerTest{
@Test
void testFlightController() {
//Use test objects from AirportControllerTest & RouteControllerTest
}
}
}
如果您使用的是 JUnit 4,您可以將您的測試類包含在測試套件中。 這個答案是一個很好的匹配 - https://stackoverflow.com/a/42600619/6352160
不太相關:用於在測試 Class 中配置測試方法順序。
如果您使用 JUnit5,請在 Test class 中指定 @TestMethodOrder 並在方法上使用 @Order 注釋來指定它們的執行順序。 參考 - https://junit.org/junit5/docs/current/api/org.junit.jupiter.api/org/junit/jupiter/api/TestMethodOrder.ZFC35FDC70D5FC69D269EZ88.83
如果使用 JUnit4,這個問題有幾個可能的解決方案 - 如何在 JUnit4 中按特定順序運行測試方法?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.