1. 什么事Junit测试
Unit是一个开发源代码的Java测试框架,用于编写和运行可重复的测试。他是用于单元测试框架体系xUnit的一个实例(用于java语言)。
2. Junit测试的版本
2.1Juit3.8
在3.8版本的风格下:
1)所有完成测试功能的类要继承TestCase类(继承Assert类)。
2)所有要测试的方法都要使用testXXX的命名方式。
3)由TestRunner类来运行测试类中的每一个需要测试的方法。
2.1.1 常用的assert方法
断言方法 | 描述 |
assertEquals | 断言期望值和测试后的实际值相等 |
assertTrue/assertFalse | 断言测试后实际的boolean值是true/fasle |
assertNull/assertNotNull | 断言测试后实际的值为null |
assertSame/assertNotSame | 断言期望值和测试后的实际值是否指向同一个对象 |
注意:在开发的过程中,建议采用测试先行的开发方式
2.1.2 一个简单的Junit测试程序(测试返回值是否正确)
1.建立一个接口以及一个它的实现类如下
public interface Compute {
public int add(int first,int second);
public int sub(int first,int second);}
public class ComputeImpl implements Compute {
public int add(int first, int second) {
return 0;}
public int sub(int first, int second) {
return 0;}}
2.建立单元测试文件TestCompute.java,在添加测试方法testAdd()完成对ComputeImpl类的测试。
public class TestIComputer extends TestCase {
protected void setUp() throws Exception {
System.out.println("setUp... ");
}
protected void tearDown() throws Exception {
System.out.println("tearDown... ");
}
public void testAdd(){
System.out.println("testAdd... ");
Compute c=new ComputeImpl ();
assertEquals(0, c.add(-3,3));
assertEquals(-1, c.add(2,-3));
assertEquals(5, c.add(2,3));
}}
3、编译文件,运行JUnit框架完成测试。
注:Junit框架开始运行测试用例时,运行顺序是setUp()()、testXXX()、tearDown()
2.2 Junit4.4
JUnit 4 使用 Java 5 中的注解(annotation),JUnit 4 常用annotation 介绍
@Before:初始化方法
@After:释放资源
@Test:测试方法,在这里可以测试期望异常和超时时间
@Ignore:忽略的测试方法
@BeforeClass:针对所有测试,只执行一次,且必须为static void
@AfterClass:针对所有测试,只执行一次,且必须为static void
一个JUnit 4 的单元测试用例执行顺序为:
@BeforeClass –> @Before –> @Test –> @After –> @AfterClass
每一个测试方法的调用顺序为:
@Before –> @Test –> @After