如何以漂亮的方式使用junit 5组测试(收集用户案例)

foo*_*orx 1 java junit5

因为测试方法有很多用户案例,如何收集这些案例?

jestjavascript单元测试


describe('test methon', () => {
  test('user case one', () => {
    //test code
  });

  test('user case two', () => {
    //test code
  });

  test('user case three', () => {
    //test code
  }); 

  test(...) 
});
Run Code Online (Sandbox Code Playgroud)

小智 5

我不知道 JUnit5 中的任何内容看起来像您展示的 javascript 中的测试一样具有表现力和简洁性。但是至少有一件事情需要考虑,它可以让您以类似的方式对测试进行分组。

它是@Nested注释。它允许您将一组测试分组到一个逻辑组中。执行测试包后,导航和了解哪些测试组通过/失败将更容易。如果您的 JUnit 测试用例类中有大量测试,则非常有用。这是它的外观示例:

public class YourTestCase {
    …

    @Nested
    @DisplayName("Tests for my method")
    class MyMethodUseCases {
        @Test
        void testUseCase1() {
            ...
        }

        @Test
        void testUseCase2() {
            ...
        }

        @Test
        void testUseCase3() {
            ...
        }
    }
Run Code Online (Sandbox Code Playgroud)

如果您的测试组共享一些需要在执行测试之前设置的上下文,那么您还可以考虑使用一个特殊的 JUnit 运行器,例如 HierarchicalContextRunner。这不是标准 JUnit 的一部分,而是自定义扩展。

最后一件事,如果您的用例之间的唯一区别是数据输入,那么您可能会考虑使用@ParametrizedTest注释。它允许您编写一个测试并使用多个数据输入执行它。