1.13-java單元測試junit
單元測試junit4.12基本使用方法
前言
junit是java語言開源單元測試框架,由Kent Beck和Erich Gamma建立的,在專案中使用junit單元測試,需要引入2個包:
junit-4.12.jar
hamcrest-core-1.3.jar
若不知道如何獲取這2個包,可通過百度網盤下載:
連結:https://pan.baidu.com/s/1TfD8dDoF9OZB3Ay1m9iPlw
提取碼:i7tr
步驟
一、編寫一個工具類
1、開啟idea,新建工程:junit-test
2、新建包:com.my.tools
3、新建類:Computer,代表一個具備基本資料運算的計算器,這個類可作為工具供其他程式碼使用。程式碼如下:
package com.my.tools;
public class Computer {
/**加法運算*/
public static double add(double a,double b){
return a+b;
}
/**減法運算*/
public static double minus(double a,double b){
return a-b;
}
/**乘法運算*/
public static double multi(double a,double b){
return a*b;
}
/**除法運算*/
public static double div(double a,double b){
return a/b;
}
/**求冪運算:求a的b次方*/
public static double power(double a,double b){
return Math.pow(a,b);
}
/**開方運算:求a的b次方*/
public static double sqrtX(double a,double b){
return Math.pow(a,1.0/b);
}
/**對數運算:求base為底,value的log*/
public static double log(double value,double base){
return Math.log(value)/Math.log(base);
}
}
二、為工具類編寫單測程式碼
1、一般情況下,為測試這個Computer 工具類各個方法的正確性,可以建立一個main函式,然後編寫測試程式碼,通過執行main函式檢驗結果,比如:
2、當工程比較複雜,通過main函式進行除錯的成本就比較高,且一個工程中程式碼中存在大量的main函式是不可取的。因此需要單元測試框架,來快速、高效的測試某個方法的正確性,且編寫完善的單測程式碼是保證軟體質量的必要手段。
3、準備好2個junit單元測試所依賴的jar包:
junit-4.12.jar
hamcrest-core-1.3.jar
4、在工程跟目錄,新建一個目錄lib,將以上2個jar包複製到lib目錄下。
5、在com.my.tools包下面,新建Computer物件的測試類:ComputerTest,程式碼如下:
package com.my.tools;
import junit.framework.TestCase;
import org.junit.Test;
/**ComputerTest 的測試類,繼承至TestCase*/
public class ComputerTest extends TestCase {
/**方法上加 @Test,且方法名以 test開頭*/
@Test
public void testAdd(){
//1、正案例
assertEquals(5.0,Computer.add(2,3));
assertEquals(5.0,Computer.add(5,0));
assertEquals(5.0,Computer.add(-1,6));
//2、反案例
assertNotSame(4.0,Computer.add(2,3));
}
@Test
public void testMinus(){
//1、正案例
assertEquals(5.0,Computer.minus(10,5));
assertEquals(5.0,Computer.minus(5,0));
assertEquals(5.0,Computer.minus(-10,-15));
//2、反案例
assertNotSame(4.0,Computer.minus(2,3));
}
@Test
public void testMulti(){
//1、正案例
assertEquals(5.0,Computer.multi(1,5));
assertEquals(0.0,Computer.multi(5,0));
assertEquals(5.0,Computer.multi(-5,-1));
//2、反案例
assertNotSame(4.0,Computer.multi(2,3));
}
@Test
public void testDiv(){
//1、正案例
assertEquals(0.2,Computer.div(1,5));
assertEquals(5.0,Computer.div(10,2));
assertEquals(5.0,Computer.div(-5,-1));
//2、反案例
assertNotSame(4.0,Computer.div(2,3));
assertNotSame(4.0,Computer.div(2,0));
}
@Test
public void testPower(){
//1、正案例
assertEquals(1.0,Computer.power(1,5));
assertEquals(100.0,Computer.power(10,2));
assertEquals(-0.2,Computer.power(-5,-1));
assertEquals(1.0,Computer.power(-5,0));
//2、反案例
assertNotSame(4.0,Computer.power(2,3));
}
@Test
public void testSqrtX(){
//1、正案例
assertEquals(1.0,Computer.sqrtX(1,5));
assertEquals(3.1622776601683795,Computer.sqrtX(10,2));
assertEquals(0.2,Computer.sqrtX(5,-1));
//2、反案例
assertNotSame(4.0,Computer.sqrtX(2,3));
}
@Test
public void testLog(){
//1、正案例
assertEquals(1.0,Computer.log(10,10));
assertEquals(3.3219280948873626,Computer.log(10,2));
//2、反案例
assertNotSame(4.0,Computer.log(2,0));
}
}
6、程式碼存在報錯,引入包的語句無效。這是因為以上2個jar包還沒新增到工作路徑。
7、點 file - Project Structure , 選 Libraries, 點 + 號,選到 lib目錄下的兩個jar包,點確定,ComputerTest中的程式碼就正常無報錯了。
三、執行
1、執行單個方法的測試程式碼。滑鼠點選到 要測試的方法區域,如 testAdd方法,點滑鼠右鍵,Run testAdd(),可以看到左下方 testAdd 打勾,說明testAdd程式碼裡的全部案例都通過了。
2、執行全部單元測試。滑鼠點選 ComputerTest ,右鍵 Run ‘ComputerTest’。可見左下角每個測試方法的執行情況。
相關文章
- Junit單元測試—MavenMaven
- 實驗三junit單元測試
- 使用JUnit進行單元測試
- Java Junit單元測試(入門必看篇)Java
- Spring單元測試教程(JUnit5+Mockito)SpringMockito
- Java單元測試之JUnit 5快速上手Java
- SpringBoot與單元測試JUnit的結合Spring Boot
- JUnit+Mockito單元測試之打樁when().thenReturn();Mockito
- Springboot整合JUnit5優雅進行單元測試Spring Boot
- Java新一代單元測試框架JUnit5速覽Java框架
- 測試 之Java單元測試、Android單元測試JavaAndroid
- 單元測試:單元測試中的mockMock
- springboot junit測試Spring Boot
- Junit 4 測試方法
- 【JUnit測試】總結
- 單元測試,只是測試嗎?
- 單元測試-【轉】論單元測試的重要性
- golang單元測試Golang
- 單元測試真
- iOS 單元測試iOS
- python 單元測試Python
- 前端單元測試前端
- Flutter 單元測試Flutter
- 單元測試 Convey
- 單元測試工具
- 聊聊單元測試
- 十五、單元測試
- Go單元測試Go
- SpringBoot單元測試Spring Boot
- spring1.2+hibernate3.0+junit3.8+jdk1.4的單元測試異常解決方法SpringJDK
- 解決JUnit單元測試時出現的Java.lang.Exception: No runnable methods問題JavaException
- junit測試工具運用
- 前端測試:Part II (單元測試)前端
- SpringBoot整合Junit單元測試找不到bean報錯:expected at least 1 bean which qualifies as autowire candidateSpring BootBeanAST
- 單元測試框架 mockito框架Mockito
- 單元測試與MockitoMockito
- Source Generator 單元測試
- 單元測試?即刻搞定!