Junit 是一套测试框架,官方网站http://junit.org/
1、Junit安装与配置
1.1 下载junit的jar,然后导入项目中
1.2 在src下面写一个测试操作类Calc
1.3 新建test源文件包以及新建package,新建package的原则:
1.3.1 和待测试的类的包一致
1.3.2 测试类的名字命名由待测试类的名字加上Test的后缀;如:CalcTest
1.3.3 测试类中的方法命名以test为前缀加上被测试的方法名;如:testAdd()
2、Junit4
A、@Before 注解:与junit3.x中的setUp()方法功能一样,在每个测试方法之前执行;
B、@After 注解:与junit3.x中的tearDown()方法功能一样,在每个测试方法之后执行;
C、@BeforeClass 注解:在所有方法执行之前执行;
D、@AfterClass 注解:在所有方法执行之后执行;
E、@Test(timeout = xxx) 注解:设置当前测试方法在一定时间内运行完,否则返回错误;
F、@Test(expected = Exception.class) 注解:设置被测试的方法是否有异常抛出。抛出异常类型为:Exception.class;
G、@Ignore 注解:注释掉一个测试方法或一个类,被注释的方法或类,不会被执行。
package org.zhanghua.junit;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
public class CalcTest {
public Calc calc;
/**
* @Before 表示在运行test方法之前运行该方法
*/
@Before
public void setUp(){
calc=new Calc();
}
/**
* @Test 表示该方法为一个测试方法
*/
@Test
public void testAdd(){
int result=calc.add(10,10);
/**
* 第一个参数表示,如果发错异常,提示的异常信息
* 第二个参数表示,测试的预期结果值
* 第三个参数表示,实际的值
*/
Assert.assertEquals("加法有异常", result, 20);
}
@Test
public void testMinus(){
int result=calc.minus(10, 1);
Assert.assertEquals(result, 9);
}
@Test
public void testMulit(){
int result=calc.mulit(10, 1);
Assert.assertEquals(result, 10);
}
@Test
public void testDivi(){
int result=calc.divi(9, 3);
Assert.assertEquals(result, 3);
}
/**
* expected=Exception.class 表示该测试方法应该要抛异常才算正确
*/
@Test(expected=Exception.class)
public void testDiviException(){
calc.divi(9,0);
}
/**
* 表示该测试方法必须在300ms内完成才算正确
*/
@Test(timeout=300)
public void testAddTime(){
try {
Thread.sleep(200);
} catch (InterruptedException e) {
e.printStackTrace();
}
int result=calc.add(10,10);
Assert.assertEquals(result, 20);
}
}