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單元測試
- Junit 單元測試.
- junit-單元測試
- JUnit 4 單元測試
- JUnit測試單元框架框架
- Junit單元測試—MavenMaven
- JUnit3.8的Junit單元測試.
- Java單元測試之junitJava
- Junit4單元測試
- 使用JUnit進行單元測試
- 使用junit單元測試SpringMvcSpringMVC
- Junit 單元測試使用總結
- 實驗三junit單元測試
- 用Junit Framework編寫單元測試Framework
- Java單元測試之JUnit 5快速上手Java
- Java Junit單元測試(入門必看篇)Java
- 安卓單元測試 (八):Junit Rule 的使用安卓
- Android單元測試(3):JUnit 的使用Android
- JUnit 單元測試斷言推薦 AssertJ
- 用Junit Framework編寫單元測試 (轉)Framework
- Spring單元測試教程(JUnit5+Mockito)SpringMockito
- SpringBoot與單元測試JUnit的結合Spring Boot
- JUnit+Mockito單元測試之打樁when().thenReturn();Mockito
- junit單元測試時,java.lang.ClassNotFoundException: java.pakc.SimpleTestJavaException
- 測試 之Java單元測試、Android單元測試JavaAndroid
- 單元測試:單元測試中的mockMock
- Java新一代單元測試框架JUnit5速覽Java框架
- Springboot整合JUnit5優雅進行單元測試Spring Boot
- JUnit測試方法
- [iOS單元測試系列]單元測試編碼規範iOS
- 在Android上實現Junit單元測試的四部曲Android
- 搭建持續整合單元測試平臺(Jenkins+Ant+Java+Junit+SVN)JenkinsJava
- 菜鳥學Java(二十一)——如何更好的進行單元測試——JUnitJava
- Flutter 單元測試Flutter
- Go單元測試Go
- 單元測試工具
- iOS 單元測試iOS
- 前端單元測試前端