Junit是我们进行单元测试必备的一个工具,用于检测我们的方法是否可以输出我们预期的值。
junit3和junit4的使用区别如下
1.在JUnit3中需要继承TestCase类,但在JUnit4中已经不需要继承
TestCase
2.在JUnit3中需要覆盖TestCase中的setUp和tearDown方法,其中setUp方法会在测试执行前被调用以完成初始化工作,而tearDown方法则在结束测试结果时被调用,用于释放测试使用中的资源,而在JUnit4中,只需要在方法前加上@Before, @After
3.在JUnit3中对某个方法进行测试时,测试方法的命令是固定的,例如对add这个方法进行测试,需要编写名字为tetAdd的测试方法,而在JUnit4中没有方法命令的约束,在方法的前面加上@Test,这就代表这个方法是测试用例中的测试方法
4.新的断言assertThat
5. @BeforeClass 和 @AfterClass 。在JUnit3,如果所有的test case仅调用一次setUp()和tearDown()需要使用TestSetup类
6.测试异常处理 @Test(expected = DataFormatException.class)
7.设置超时 @Test(timeout = 1000)
8.忽略测试 @Ignore
2.在JUnit3中需要覆盖TestCase中的setUp和tearDown方法,其中setUp方法会在测试执行前被调用以完成初始化工作,而tearDown方法则在结束测试结果时被调用,用于释放测试使用中的资源,而在JUnit4中,只需要在方法前加上@Before, @After
3.在JUnit3中对某个方法进行测试时,测试方法的命令是固定的,例如对add这个方法进行测试,需要编写名字为tetAdd的测试方法,而在JUnit4中没有方法命令的约束,在方法的前面加上@Test,这就代表这个方法是测试用例中的测试方法
4.新的断言assertThat
5. @BeforeClass 和 @AfterClass 。在JUnit3,如果所有的test case仅调用一次setUp()和tearDown()需要使用TestSetup类
6.测试异常处理 @Test(expected = DataFormatException.class)
7.设置超时 @Test(timeout = 1000)
8.忽略测试 @Ignore
junit3一个最简单的例子
1:目标类:这里最简单的一个方法,如果是复杂的方法,无非也是处理流程复杂了,最终也是返回结果
package com.common;
public class Junit3 {
public int addab(int a,int b){
return a + b;
}
}
2:测试类:必须继承TestCase
package com.commmon;
import com.common.Junit3;
import junit.framework.TestCase;
public class Junit3Test extends TestCase{
Junit3 junit3 = null;
//执行测试方法前调用的方法,这个名字必须是setUp
public void setUp(){
junit3 = new Junit3();
}
//方法名字必须加test,
不能带参数
public void testAddab(){
int result = junit3.addab(4, 5);
assertEquals(9,result);
}
}
junit4一个最简单的例子,和junit3的一样。具体看写法上的区别
1:目标类:这里方法和上面一样,方便对比
package com.common;
public class Junit4 {
public int addab(int a,int b){
return a + b;
}
}
2:测试类,不需要继承TestCase
package com.common;
import static org.junit.Assert.*;
import org.junit.Before;
import org.junit.Test;
public class Junit4Test {
Junit4 junit4 = null;
//执行测试方法前调用的方法,这个名字可以随便写
@Before
public void setUp(){
junit4 = new Junit4();
}
//方法名字可以随便写
@Test
public void testAddab(){
int result = junit4.addab(4, 5);
assertEquals(9,result);
}
}
更多高级功能有兴趣的话,可以深入研究,这只是一个最简单的例子程序,任何复杂的功能都是从入门开始