Junit5系列-Junit5中@Disabled禁止執行
系列導航
簡介
可以通過@Disabled註釋,禁用整個測試類或單個測試方法。
這個@Disabled註解代替了Junit4中的@Ignore註解,功能相同。
案例分析
其中每個方法的作用程式碼中的註釋寫的已經非常清楚了
,就不再贅述了.
大家最好將程式碼自己測試一遍,可以加深理解與記憶!
案例程式碼:
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertTrue;
@Disabled
class DisabledClassDemo {
//因為在類上註釋了@Disabled,所以類中的所有方法都被禁止執行
@Test
void testDisable(){
assertTrue(true);
}
@Test
void testDisable2(){
assertTrue(true);
}
}
class DisabledTestsDemo {
//此方法被禁止執行,並在控制檯列印預設訊息“void junit5_test.DisabledTestsDemo.testWillBeSkipped1() is @Disabled”字樣!
@Disabled
@Test
void testWillBeSkipped1() {
}
//此方法被禁止執行,並在控制檯列印自定義訊息“testWillBeSkipped ware disabled!”字樣!
@Disabled(value = "testWillBeSkipped ware disabled!")
@Test
void testWillBeSkipped2() {
}
//此方法正常執行
@Test
void testWillBeExecuted() {
}
}
原始碼分析
1.@Disabled註解原始碼:
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@API(
status = Status.STABLE,
since = "5.0"
)
public @interface Disabled {
String value() default "";
}
從原始碼中可以發現:
- 元註解@Target中說明該註解可以作用在類、Enum、方法上面
- 元註解@Retention說明在原始檔、class檔案、執行時都存在該註解
- 元註解@Documented說明此註解將包含在javadoc說明中
- @API 說明了該註解的現狀,該註解是穩定的且從5.0新增的
- 引數:String value(); 賦值我們當方法被禁止直行時自定義的列印訊息,有預設值所以不是必須要賦值。
其他
在這裡對比一下Junit4的@Ignore和Junit5的@Disabled兩個註解吧:
@Ignore的原始碼
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD, ElementType.TYPE})
public @interface Ignore {
String value() default "";
}
從原始碼層面來看,並沒有任何本質的區別,Junit5用@Disabled代替Junit4中@Ignore只是為了更加符合該註解作用的”不能執行此測試方法“的語義。
如果轉載此博文,請附上本文連結,謝謝合作~ :https://blog.csdn.net/csdn___lyy
如果感覺這篇文章對您有所幫助,請點選一下“喜歡”或者“關注”博主,您的喜歡和關注將是我前進的最大動力!
refer: 官網
相關文章
- Junit5系列-Junit5中DisabledCondition條件測試執行
- Junit5系列-Junit5中Assumptions假設類
- Junit5系列-Junit5中Assertions斷言類
- Junit5系列-Junit5中@DisplayName自定義名稱
- Junit5系列-什麼是Junit5?
- Junit5系列-Junit5中assertThrows()與assertDoesNotThrow()方法詳解
- JUnit5學習之四:按條件執行
- JUnit5編寫基本測試
- JUnit5的Tag、Filter、Order、LifecycleFilter
- JUnit5註解學習指引
- Springboot整合JUnit5優雅進行單元測試Spring Boot
- junit5 是不是全方面吊打 testng
- JUnit5學習之一:基本操作
- JUnit5學習之三:Assertions類
- JUnit5學習之二:Assumptions類
- JUnit5依賴注入與測試介面依賴注入
- 基於 junit5 實現 junitperf 原始碼分析原始碼
- JUnit5學習之八:綜合進階(終篇)
- Spring 對 Junit4,Junit5 的支援上的運用Spring
- Java新一代單元測試框架JUnit5速覽Java框架
- JUnit5學習之五:標籤(Tag)和自定義註解
- JUnit5的條件測試、巢狀測試、重複測試巢狀
- JUnit5學習之六:引數化測試(Parameterized Tests)基礎Zed
- JUnit5學習之七:引數化測試(Parameterized Tests)進階Zed
- [20191104]禁止job以及SCHEDULER執行.txt
- Vs Code中執行vue命令顯示"系統禁止執行指令碼"無法在終端使用Vue指令碼
- win10 禁止任務自動執行方法 win10自動執行程式怎麼禁止Win10行程
- 多執行緒系列之 執行緒安全執行緒
- win10如何禁止靜默執行_win10禁止靜默安裝方法Win10
- Jou 的解決方案系列:vue 無法載入檔案,Windows 系統禁止執行指令碼VueWindows指令碼
- Win10使用Powershell提示禁止執行指令碼怎麼辦 Win10使用Powershell提示禁止執行指令碼如何解決Win10指令碼
- 執行緒系列四AQS執行緒AQS
- 多執行緒系列(十七) -執行緒組介紹執行緒
- 多執行緒系列(1),多執行緒基礎執行緒
- 多執行緒系列(三):執行緒池基礎執行緒
- npm 執行時報錯“因為在此係統上禁止執行指令碼”解決辦法NPM指令碼
- java多執行緒系列:ThreadPoolExecutorJava執行緒thread
- 多執行緒系列(四):Task執行緒