日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

java 中的单元测试_浅谈Java 中的单元测试

發布時間:2023/11/27 生活经验 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 中的单元测试_浅谈Java 中的单元测试 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

單元測試編寫

Junit 單元測試框架

對于Java語言而言,其單元測試框架,有Junit和TestNG這兩種,

下面是一個典型的JUnit測試類的結構

package com.example.demo;

import org.junit.jupiter.api.*;

import static org.junit.jupiter.api.Assertions.*;

@DisplayName("售票器類型測試")

class DemoTest {

// 定義測試的實例

private Demo demo;

// 定義前綴 整個測試類開始執行的地方

@BeforeAll

public static void init(){

}

// 定義后綴,整個測試類完成后執行的操作

@AfterAll

public static void cleanup(){

}

// 定義每個測試用例開始執行前的操作

@BeforeEach

public void create(){

this.demo = new Demo();

}

// 定義在每個測試用例完成后執行的操作

@AfterEach

public void destory(){

}

// 執行測試用例

@Test

@DisplayName("售票后的余額減少")

public void shouldReduceInventoryWhenticketSoldOut(){

}

@Test

public void ming(){

}

}

測試結果如圖所示

層次性表達測試用例

測試用例較多的情況下,為了層次性表達測試用例,使用Junit的Nested注解有層次的表達測試用例

package com.example.demo;

import org.junit.jupiter.api.*;

@DisplayName("交易服務測試")

class DemoTest {

@Nested

@DisplayName("用戶交易測試")

class Test02{

@Test

@DisplayName("交易檢查測試")

public void test01(){

}

}

}

使用Tag標簽區分測試用例

在執行Maven打包的時候,使用tage注解,可以有選擇的執行一些測試命令

package com.example.demo;

import org.junit.jupiter.api.*;

@DisplayName("交易服務測試")

class DemoTest {

@Test

@DisplayName("售票后額度減少")

@Tag("fast")

public void test01(){

}

@Test

@DisplayName("一次性減少車票")

@Tag("slow")

public void test02(){

}

}

添加相關的插件

maven-surefire-plugin

2.22.0

fast

slow

斷言

使用Junit命令進行斷言處理

@Test

@DisplayName("售票后額度減少")

@Tag("fast")

public void test01(){

String s = "ming";

Assertions.assertTrue(s.startsWith("ming"));

Assertions.assertTrue(s.endsWith("g"));

Assertions.assertEquals(5, s.length());

}

此時斷言錯誤。

單元測試的目的

提升軟件質量

優質的單元測試可以保障,開發質量和程序的健壯性,在大多數互聯網企業中,開發工程師,都會頻繁的執行測試用例。

促進代碼的優化

單元測試是由開發工程師編寫和維護的,這會促進開發工程師不斷的重新審視自己的代碼質量。

提高研發效率

單元測試,雖然占用的大量的時間,但是對后續的聯調,集成等,都可以進一步的提高研發的效率。

增加重構的自信

代碼重構往往是牽一發而動全身的,當修改底層代碼的時候,通過不斷的單元測試,可以增加重構的軟件的自信。

單元測試的基本原則

單元測試要符合AIR原則。單元測試,符合以下三個原則

1. 自動化

2. 獨立性

3. 可重復

單元測試覆蓋率

語句覆蓋

又稱行覆蓋(LineCoverage),段覆蓋(SegmentCoverage),基本塊覆蓋(BasicBlockCoverage),這是最常用也是最常見的一種覆蓋方式,就是度量被測代碼中每個可執行語句是否被執行到了。

判定覆蓋

又稱分支覆蓋(BranchCoverage),所有邊界覆蓋(All-EdgesCoverage),基本路徑覆蓋(BasicPathCoverage),判定路徑覆蓋(Decision-Decision-Path)。它度量程序中每一個判定的分支是否都被測試到了。

條件覆蓋

它度量判定中的每個子表達式結果true和false是否被測試到了

路徑覆蓋

又稱斷言覆蓋(PredicateCoverage)。它度量了是否函數的每一個分支都被執行了

以上就是淺談Java 中的單元測試的詳細內容,更多關于Java 單元測試的資料請關注聚米學院其它相關文章!

總結

以上是生活随笔為你收集整理的java 中的单元测试_浅谈Java 中的单元测试的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。