前些阶段也学习过junit,但一直无法正确运用在具体项目当中,现在开始索性拿起来,从0开始学习。
junit使用到的是4.4版本。(目前最新是4.6)。
以下是实例代码:
//Calculator.java 计算加减乘除
package com.test.junit4;
public class Calculator {
public int add(int a, int b){
return a + b;
}
public int minus(int a, int b){
return a - b;
}
public int multiply(int a, int b){
return a * b;
}
public int divide(int a, int b)throws Exception{
if(0 == b){
throw new Exception("除数不能为零!");
}
return a / b;
}
}
测试代码:
//CalculatorTest.java 测试代码
/*
*由于JDK5.0 注释的加入,在junit4.4当中加入了注释,来简化、实现之前版本的一些功能
*/
package com.test.junit4;
import static org.junit.Assert.assertEquals;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
public class CalculatorTest {
private Calculator cal;
@BeforeClass
public static void globalInit(){
System.out.println("globalInit");
}
@AfterClass
public static void globalDestroy(){
System.out.println("globalDestroy");
}
@Before
public void init(){
cal = new Calculator();
System.out.println("init invoked");
}
@After
public void destroy(){
System.out.println("destroy invoked");
}
@Test
public void testAdd(){
int result = cal.add(1, 2);
assertEquals(3 ,result);
}
@Test
public void testMinus(){
int result = cal.minus(1, 2);
assertEquals(-1, result);
}
@Test
public void testMultiply(){
int result = cal.multiply(2, 3);
assertEquals(6, result);
}
@Test
public void testDivide(){
try{
int result = cal.divide(6, 5);
assertEquals(1, result);
}
catch(Exception e){
e.printStackTrace();
}
}
//期望测试方法中能够抛出Exception异常
@Test(expected = Exception.class)
public void testDivide2() throws Exception{
cal.divide(6, 0);
}
//期望测试方法运行时间在100毫秒以内,此方法中使用Thread.sleep(110)来故意延迟线程操作时间
@Test(timeout = 100)
public void testDivide3(){
try{
cal.divide(4, 2);
Thread.sleep(110);
}catch(Exception e){
e.printStackTrace();
}
}
}