簡體   English   中英

如何在 Junit5 / spring 引導中命令執行 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.

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