Junit5系列-Junit5中@DisplayName自定義名稱

yoylee_web發表於2019-01-08

系列導航

點選跳轉到系列博文目錄導航

簡介

測試類和測試方法可以宣告自定義顯示名稱 ,可以包含空格,特殊字元,甚至是表情符號 ,自定義名稱將由測試執行者和測試報告顯示。
上述功能的實現使用的就是junit5中的@DisplayName註解

demo分析

測試程式碼:

import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;

/**
 * @author liyangyang
 * @date 2019/1/8
 */
@DisplayName("A special test case")
class DisplayNameDemo {

    @Test
    @DisplayName("Custom test name containing spaces")
    void testWithDisplayNameContainingSpaces() {
    }

    @Test
    @DisplayName("╯°□°)╯")
    void testWithDisplayNameContainingSpecialCharacters() {
    }

    @Test
    @DisplayName("?")
    void testWithDisplayNameContainingEmoji() {
    }

    @Test
    @DisplayName("╯°□°)╯")
    void testRepeatName(){
    }
}

效果展示:
當我們執行上述程式碼後,在idea左下角 中會按照我們的自定義名稱顯示,可以看到自定義名稱是可以重複的:
在這裡插入圖片描述

原始碼分析

下面為DisplayName註解的原始碼:

@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@API(
    status = Status.STABLE,
    since = "5.0"
)
public @interface DisplayName {
    String value();
}

可以發現:

  • 元註解@Target中說明該註解可以作用在類、Enum、方法上面
  • 元註解@Retention說明在原始檔、class檔案、執行時都存在該註解
  • 元註解@Documented說明此註解將包含在javadoc說明中
  • @API 說明了該註解的現狀,該註解是穩定的且從5.0新增的
  • 引數:String value(); 賦值我們的自定義名稱,沒有預設值所以必須要賦值,否則編譯器會報錯。

如果轉載此博文,請附上本文連結:https://blog.csdn.net/csdn___lyy,謝謝合作~

如果感覺這篇文章對您有所幫助,請點選一下“喜歡”或者“關注”博主,您的喜歡和關注將是我前進的最大動力!

refer: 官網

相關文章