JUnit注解,枚舉

一、JUnit注解(Annotations)

JUnit 是 Java 中用于編寫和運行單元測試的框架。JUnit 提供了許多注解,用于控制測試的執行順序、測試生命周期、斷言結果等。以下是一些常用的 JUnit 注解及其作用:

1. @Test

用于標記一個方法是測試方法。

@Test
public void testAddition() {int result = 1 + 1;assertEquals(2, result); // 斷言結果是否為 2
}

2. @BeforeEach

在每個測試方法執行前運行。常用于初始化測試環境。

@BeforeEach
public void setup() {System.out.println("Before each test");
}
3. @AfterEach

在每個測試方法執行后運行。常用于清理測試環境。

@AfterEach
public void tearDown() {System.out.println("After each test");
}

4. @BeforeAll

在所有測試方法執行之前運行一次,通常用于靜態初始化。

@BeforeAll
public static void init() {System.out.println("Before all tests");
}
5. @AfterAll

在所有測試方法執行之后運行一次,通常用于釋放資源。

@AfterAll
public static void cleanup() {System.out.println("After all tests");
}
6. @Disabled

用于禁用某個測試方法或類。

@Test
@Disabled("Test is under development")
public void testDisabled() {// 該測試方法不會執行
}
7. @ParameterizedTest

用于參數化測試,允許為測試方法傳遞多組參數。

@ParameterizedTest
@ValueSource(ints = {1, 2, 3, 4})
public void testWithParameters(int number) {assertTrue(number > 0);
}
8. @Tag

用于對測試進行分類,可以通過標簽選擇性地運行測試。

@Test
@Tag("fast")
public void fastTest() {// 快速測試
}

枚舉

1. 定義和使用
  • 枚舉用于定義一組固定的常量集合。
  • 使用 enum 關鍵字定義枚舉類型。
public enum Day {MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY;
}Day day = Day.MONDAY; // 使用枚舉
2. 常用方法
  • values():獲取所有枚舉常量。
  • ordinal():返回枚舉常量的序號(從0開始)。
  • valueOf(String name):根據名稱獲取枚舉值。
for (Day d : Day.values()) {System.out.println(d + " at index " + d.ordinal());
}
Day friday = Day.valueOf("FRIDAY");
3. 帶屬性和方法

枚舉可以包含字段和方法,每個常量可以有獨特的屬性和行為。

public enum TrafficLight {RED("Stop"), GREEN("Go"), YELLOW("Caution");private final String action;TrafficLight(String action) {this.action = action;}public String getAction() {return action;}
}
System.out.println(TrafficLight.RED.getAction()); // Stop
4. 用于switch語句
switch (day) {case MONDAY -> System.out.println("Start of the week");case FRIDAY -> System.out.println("End of the workweek");default -> System.out.println("Middle of the week");
}
5. 實現抽象方法

每個枚舉常量可以實現抽象方法。

public enum Operation {ADD {public int apply(int a, int b) { return a + b; }},SUBTRACT {public int apply(int a, int b) { return a - b; }};public abstract int apply(int a, int b);
}
System.out.println(Operation.ADD.apply(2, 3)); // 5
6. 實際應用場景
  • 表示狀態或常量(如DayColorHttpStatus)。
  • 參數驗證(避免魔法值)。
  • 不同枚舉常量實現不同行為。

優點:

  1. 類型安全:防止非法值。
  2. 清晰性:避免硬編碼常量,提高可讀性。
  3. 功能擴展:支持字段、方法、抽象行為等。

喜歡這期內容的話,別忘了點個贊,關注博主,這樣就不會錯過任何更新啦!還有,收藏一下,方便以后回顧哦!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/64842.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/64842.shtml
英文地址,請注明出處:http://en.pswp.cn/web/64842.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

富芮坤FR800X系列之軟件開發工具鏈(如IDE、編譯器、調試器等)

文章目錄 一、IDE(集成開發環境)二、編譯器三、調試器四、其他輔助工具五、小結 FR800x系列作為一款低功耗藍牙芯片,其軟件開發工具鏈對于開發者來說至關重要。以下是對FR800x軟件開發工具鏈的詳細介紹,包括IDE(集成開…

數據賦能電商:API如何助力品牌成長

在數字時代,數據已成為電商品牌發展的核心驅動力。API(應用程序編程接口)作為數據交互的橋梁,不僅促進了數據的高效流通,更為電商品牌帶來了前所未有的增長機遇。本文將深入探討API如何助力電商品牌實現數據賦能&#…

「Java 數據結構全面解讀」:從基礎到進階的實戰指南

「Java 數據結構全面解讀」:從基礎到進階的實戰指南 數據結構是程序設計中的核心部分,用于組織和管理數據。Java 提供了豐富的集合框架和工具類,涵蓋了常見的數據結構如數組、鏈表、棧、隊列和樹等。本文將系統性地介紹這些數據結構的概念、…

LeetCode - 初級算法 數組(旋轉數組)

旋轉數組 這篇文章討論如何通過編程實現數組元素的旋轉操作。 免責聲明:本文來源于個人知識與公開資料,僅用于學術交流。 描述 給定一個整數數組 nums,將數組中的元素向右輪轉 k 個位置,其中 k 是非負數。 示例: 輸入: nums = [1,2,3,

c#集合詳解-Dictionary、List、Queue、Stack等

目錄 一,非泛型集合 1,ArrayList (1)創建和初始化ArrayList() (2)常用方法 ①Add(value) ②AddRange(value) ③Insert(index,value) ④Remove(value) ⑤RemoveAt(index) ⑥clear() ⑦Contains(v…

記一次網閘部署經歷

1.在成功獲取某大廠偉思網閘設備,并與客戶就現有網絡架構(包括防火墻與交換機)進行了詳盡的溝通與評估后,我們團隊精心構思并提出了一個創新的實施方案——采用透明網橋模式。這一模式以其獨特的優勢,即無需對客戶現有…

SpringCloud(一)--SpringCloud簡介

一. 引言 ? 在微服務架構日益盛行的今天,Spring Cloud憑借其簡單易用、功能強大的特性,成為了眾多開發者的首選。本文僅為學習所用,聯系侵刪。 二. SpringCloud概述 2.1 定義 ? Spring Cloud是一系列框架的有序集合,它巧妙地…

SQLALchemy如何將SQL語句編譯為特定數據庫方言

最近在一個使用fastapitortoise-orm的項目中,需要將orm的語句編譯成特定數據庫方言,但是查詢了官方文檔及一些資料卻找不到合適的方法論😔,于是乎我就把目光放到了sqlalchemy身上,東找西找給我找著了。話不多說&#x…

廬山派K230學習日記2 MicroPython基礎

MicroPython文檔: https://docs.micropython.org/ MicroPython是編程語言 Python3 的精簡高效實現,語法和 Python3 保持一致,但只實現了 Python 標準庫的一小部分,并且經過優化,適用于物聯網 (IoT)、消費電子和嵌入式…

《計算機組成及匯編語言原理》閱讀筆記:p177-p177

《計算機組成及匯編語言原理》學習第 13 天,p177-p177 總結,總計 1 頁。 一、技術總結 1.real mode A programming model where the program has access to the entire capability of the machine, bypassing security and memory management. Useful…

2000-2020年各省財政一般預算支出面板數據

2000-2020年各省財政一般預算支出面板數據 1、時間:2000-2020年 2、來源:國家統計局 3、指標:年份、省份、地方財政一般預算支出 4、范圍:31省 指標解釋:地方財政一般預算支出?是指地方ZF根據預算安排&#xff0…

python小項目:給復制出來的段落前添加星號

給復制出來的段落前添加星號 最終效果二、實現步驟2.1 編寫python腳本2.2 批處理腳本2.3 運行腳本 三、用到知識3.1 pyperclip 模塊 最終效果 說明:復制四段內容(段落實際不做限制),在windows終端輸入 bulletPointAdder&#xff0…

【LeetCode Hot100 二分查找】搜索插入位置、搜索二維矩陣、搜索旋轉排序數組、尋找兩個正序數組的中位數

二分查找 搜索插入位置搜索二維矩陣在排序數組中查找元素的第一個和最后一個位置尋找旋轉排序數組中的最小值搜索旋轉排序數組尋找兩個正序數組的中位數(hard) 搜索插入位置 給定一個排序數組和一個目標值,在數組中找到目標值,并…

24.Java 新特性擴展(重復注解、類型注解)

一、重復注解 1、基本介紹 自從 JDK 5 引入注解以來,注解的使用開始流行,在各個框架中被廣泛使用 不過注解有一個很大的限制,在同一個地方不能多次使用同一個注解 JDK 8 引入了重復注解的概念 2、具體實現 (1)自…

后端java開發路由接口并部署服務器(四)

一、安裝IntelliJ IDEA,安裝包下載 1、官網下載 2、網盤資源 安裝包下載完成后進行傻瓜式下一步安裝就可以了 打開IntelliJ IDEA,輸入網盤資源文件內容 三、漢化處理 插件搜索chinese,就會找到相應的插件安裝重啟軟件即可 四、新建后端j…

Vue.js 表單驗證實戰:一個簡單的登錄頁面

修改日期備注2025.1.2初版 一、前言 Vue.js 學習第一天——學會一個帶有簡單表單驗證的登錄頁面。通過這個項目,會對 Vue.js 的核心概念有了更深入的理解,加深掌握如何運用 Vue 的一些強大特性來實現動態交互和數據處理。 二、項目的基本結構 首先&a…

MySQL 鎖那些事

Q1 : MySQL有哪些鎖,功能是什么,如何項目中使用?Q2 : 行鎖是如何實現的?什么情況下會使用行鎖?Q3 : 四種事務隔離形式的行鎖有什么不一樣?讀未提交讀提交可重復讀串行 Q4 : MySQL 的讀寫都是怎樣加鎖的?Q5 : 需要注意什么? Q1 : MySQL有哪些鎖,功能是什么,如何項目中使用…

國產文本編輯器EverEdit - 批量轉碼轉換行符

1 批量轉碼&轉換行符 1.1 應用場景 如果用戶批量在Windows編輯文件,要上傳到異構系統,如:Linux,則需要批量轉換編碼和換行符,此時可以使用EverEdit的批量轉碼功能。 1.2 使用方法 選擇主菜單文檔 -> 批量轉碼…

Java實現下載excel模板,并實現自定義下拉框

GetMapping("excel/download")ApiOperation(value "模板下載")public void getUserRecordTemplate(HttpServletResponse response, HttpServletRequest request) throws IOException {OutputStream outputStream response.getOutputStream();InputStream…

成立一家無人機培訓機構需要哪些基礎配置

成立一家無人機培訓機構,需要一系列基礎配置來確保教學質量、學員安全以及機構的正常運營。以下是根據公開發布的信息整理出的關鍵基礎配置: 一、場地配置 1. 飛行場:提供一個安全、寬敞的室外飛行環境,面積最好大于三千平米&…