JUnit使用總結
被測試的類
public class Calculator {
public int add(int one, int another) {
// 為了簡單起見,暫不考慮溢位等情況。
return one + another;
}
public int multiply(int one, int another) {
// 為了簡單起見,暫不考慮溢位等情況。
return one * another;
}
}
1.使用和不使用之間的差別
1.1 不使用
/**
* 不使用Junit進行測試
* @author YW0941
*
*/
public static void main(String[] args) {
Calculator calculator = new Calculator();
int sum = calculator.add(1, 2);
if (sum == 3) {
System.out.println("add() works!");
} else {
System.out.println("add() does not works!");
}
int product = calculator.multiply(2, 4);
if (product == 8) {
System.out.println("multiply() works!");
} else {
System.out.println("multiply() does not works!");
}
}
1.2 使用JUnit
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
public class CalculatorTest {
@Test
public void testAdd() throws Exception {
System.out.println("testAdd running ......");
Calculator calculator = new Calculator();
int sum = calculator.add(1, 2);
Assert.assertEquals(3, sum);
}
@Test
public void testMultiply() throws Exception {
System.out.println("testMultiply running ......");
Calculator calculator = new Calculator();
int product = calculator.multiply(2, 4);
Assert.assertEquals(8, product);
}
}
2.Assert類常用方法
assertEquals(expected, actual)
assertEquals(expected, actual, tolerance)
assertTrue(boolean condition)
assertFalse(boolean condition)
assertNull(Object obj)
assertNotNull(Object obj)
assertSame(expected, actual)
assertNotSame(expected, actual)
fail()
備註:上面方法都有一個過載的方法,方法第一個引數是一個字串,結果報導里會顯示此字串引數值,讓測試結果更具可讀性,更清楚出錯原因
3.幾個註解
@Test
@Before
@After
@BeforeClass
@AfterClass
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
public class CalculatorTest {
private Calculator calculator;
@Before
public void setup(){
calculator = new Calculator();
System.out.println("每個測試方法執行之前都會被呼叫......");
}
@After
public void release(){
System.out.println("每個測試方法執行之後都會被呼叫......");
}
@BeforeClass
public static void loadClass(){
// calculator = new Calculator();
System.out.println("跑此測試類所有方法前呼叫......");
}
@AfterClass
public static void releaseClass(){
System.out.println("跑此測試類所有方法之後呼叫......");
}
@Test
public void testAdd() throws Exception {
System.out.println("testAdd running ......");
// Calculator calculator = new Calculator();
int sum = calculator.add(1, 2);
Assert.assertEquals(3, sum);
}
@Test
public void testMultiply() throws Exception {
System.out.println("testMultiply running ......");
// Calculator calculator = new Calculator();
int product = calculator.multiply(2, 4);
Assert.assertEquals(8, product);
}
}
相關文章
- Junit 單元測試使用總結
- Spring Test 整合 JUnit 4 使用總結Spring
- 【JUnit測試】總結
- junit 使用JUnit測試預期異常
- JUnit —— TestSuite 的使用UI
- JUnit使用經驗
- Spring+MyBatis+JUnit整合測試的搭建過程總結SpringMyBatis
- 使用Junit 5時,如何同時使用 junit4和 PowerMockMock
- 使用android studio 建立app時報錯:Could not download junit.jar(junit:junit:4.12)AndroidAPPJAR
- SVN使用總結
- Git 使用總結Git
- Vuex使用總結Vue
- Toolbar使用總結
- Gson使用總結
- Ajax使用總結
- HelloCharts 使用總結
- Nginx使用總結Nginx
- VUE 使用總結Vue
- npm使用總結NPM
- 前端this使用總結前端
- kvm使用總結
- jmeter 使用總結JMeter
- Eureka使用總結
- RxJava使用總結RxJava
- webp使用總結Web
- formData使用總結ORM
- Pycharm使用總結PyCharm
- vim使用總結
- Sass使用總結
- JQuery使用總結jQuery
- Git使用總結Git
- Excel使用總結Excel
- job使用總結
- aerospike 使用總結ROS
- BTrace 使用總結
- 使用MV總結
- sqlserver 使用總結SQLServer
- Supervisor 使用總結