【问题标题】:How to order Tests while building Spring Boot application如何在构建 Spring Boot 应用程序时订购测试
【发布时间】:2019-11-17 03:19:59
【问题描述】:

我正在构建带有单元测试的 Spring Boot 应用程序。我有相互依赖的实体,例如:我有用户和角色。要创建用户,我应该需要角色。我正在使用 MockMvc 测试角色和用户对象资源。我为每个实体创建了测试类。当我运行测试时,UserTest 类正在执行角色测试类之前。所以,我所有的测试都失败了。我需要帮助才能按顺序运行测试类。

【问题讨论】:

  • 你使用什么测试框架? JUnit 4、JUnit Jupiter、TestNG、...?
  • 无论如何,真正的单元测试不应该依赖于其他测试。因此,最好的做法是确保为每个单元测试设置适当的测试夹具。
  • @SamBrannen,我正在使用 JUnit 4。

标签: spring-boot spring-data-jpa spring-test spring-mvc-test


【解决方案1】:

正如我在 cmets 中提到的,此类问题的最佳解决方案是避免测试类之间的依赖关系。

这可以通过正确的测试夹具设置和拆卸来实现(例如,JUnit 4 中的 @Before@After 方法)。

话虽如此,但如果您通过套件执行测试类,则可以在 JUnit 4 中订购测试类,如下例所示。

@RunWith(Suite.class)
@SuiteClasses({RoleTests.class, UserTests.class})
public class MyTestSuite {

    public static class RoleTests {

        @Test
        public void roleTest() {
            System.err.println("roleTest");
        }
    }

    public static class UserTests {

        @Test
        public void userTest() {
            System.err.println("userTest");
        }
    }
}

总是打印出来:

roleTest
userTest

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-02-16
    • 2017-04-14
    • 1970-01-01
    • 2018-03-25
    • 2016-10-20
    • 2023-03-10
    • 2018-03-20
    • 2021-05-27
    相关资源
    最近更新 更多