单元测试用的包:junit-4.1.jar
本质上就是提供了一个方便且功能强大的接口,省去了你写main方法的麻烦。
package JunitPractice;
public class Calculator {
public int add(int x,int y){
return x+y;
}
public int divide(int x,int y){
return x/y;
}
public static void main(String[] args) {
int z=new Calculator().add(3, 5);
System.out.println(z);
}
}
然后写个junit的例子
package JunitTest;
import JunitPractice.Calculator;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.*;
public class CalculatorTest {
@Before
public void setUp() throws Exception {
System.out.println("method called before...");
}
@After
public void tearDown() throws Exception {
System.out.println("method called after...");
}
@Test
public void add() throws Exception {
Calculator cal=new Calculator();
int result=cal.add(2,3);
System.out.println("run here");
Assert.assertEquals("答案是错的",6,result);
System.out.println("run end");
}
@Test
public void divide() throws Exception {
}
}
其中@before是在测试方法前调用的,@after是测试方法后调用的,这两个方法不管测试方法是否报错是否发生异常,都会执行。另外,before和after是方法级的,意思是这俩方法会在所有的@Test方法运行时都会执行。
测试方法就是个简单的计算,如果断言结果是错的,就会发生异常中断,assert后面的方法将不会执行。