欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Junit5单元测试的常用注解

程序员文章站 2024-01-09 17:53:52
...

JUnit5的注解与JUnit4的注解有所变化
https://junit.org/junit5/docs/current/user-guide/#writing-tests-annotations
• @Test :表示方法是测试方法。但是与JUnit4的@Test不同,他的职责非常单一不能声明任何属性,拓展的测试将会由Jupiter提供额外测试
• @ParameterizedTest :表示方法是参数化测试,下方会有详细介绍
• @RepeatedTest :表示方法可重复执行,下方会有详细介绍
• @DisplayName :为测试类或者测试方法设置展示名称
• @BeforeEach :表示在每个单元测试之前执行
• @AfterEach :表示在每个单元测试之后执行
• @BeforeAll :表示在所有单元测试之前执行
• @AfterAll :表示在所有单元测试之后执行
• @Tag :表示单元测试类别,类似于JUnit4中的@Categories
• @Disabled :表示测试类或测试方法不执行,类似于JUnit4中的@Ignore
• @Timeout :表示测试方法运行如果超过了指定时间将会返回错误
• @ExtendWith :为测试类或测试方法提供扩展类引用
import org.junit.jupiter.api.Test; //注意这里使用的是jupiter的Test注解!!

@DisplayName("Junit5功能测试类")
@SpringBootTest
class SpringMvdApplicationTests {

    @Autowired
    RedisTemplate redisTemplate;

    @DisplayName("测试displayName注解")
    @Test
    void testRedis() {
        ValueOperations<String, String> operations = redisTemplate.opsForValue();
        operations.set("hello", "world");
        System.out.println(operations.get("hello"));
    }

    @DisplayName("测试displayName注解")
    @Test
    void tes1() {
        System.out.println("test.....");
    }

    @DisplayName("测试displayName注解")
    @Disabled //表示忽略不生效
    @Test
    void tes2() {
        System.out.println("test.....");
    }

    //超时就报错
    @Timeout(value = 500, unit = TimeUnit.MILLISECONDS)
    @Test
    void testTimeOut() throws InterruptedException {
        Thread.sleep(600);
    }

    @BeforeEach
    void testBefore() {
        System.out.println("在每一个测试开始之前执行");
    }

    @AfterEach
    void testAfter() {
        System.out.println("在每个test之后执行");
    }

    @BeforeAll
    static void testBeforeAll() {
        System.out.println("在所有test之前执行");
    }

    @AfterAll
    static void testAfterAll() {
        System.out.println("在所test之后执行");
    }
}
相关标签: spingboot

上一篇: java字符串转int数组

下一篇: