Junit 概念,原理这里不说了,有兴趣的朋友可以查阅相关资料,这篇文章主要是为了快速给大家介绍一下junit4的使用 以及与 junit3的区别,这里默认大家对junit3已经有些理解了。
下面开始吧:
1.先写个简单的被测试类:
package test.junit;
public class BaseClass {
public String method() {
return this.getClass().getName();
}
}
2.对于这个类的unit测试,我们先看看在junit3中怎么进行测试的吧:
package test.junit;
import junit.framework.TestCase;//引入TestCase类
public class BaseClassTest extends TestCase {//类必须继承TestCase
BaseClass baseClass;
protected void setUp() throws Exception {
super.setUp();
baseClass = new BaseClass();
}
public void testMethod (){//测试方法必须以test开头
//通过assert*来检验
assertTrue(baseClass.method ().equals("test.junit.BaseClass"));
}
}
通过上面这个类,我们对junit3进行一些总结:
1. 必须引入类TestCase(import junit.framework.TestCase;),
2. 必须继承类TestCase (class BaseClassTest extends TestCase)
3. 测试方法必须以test开头(public void testMethod ())
4. 通过assert*方法来判断结果(assertTrue(baseClass.method ().equals("test.junit.BaseClass"));)。
3. 下面来了解一下junit4里面的内部关系吧,从这个图中你可以看出junit4的主要功能:
下面来看看我们的主角junit4是怎么处理这些的吧:
package test.junit;
import org.junit.Test;//引入Test类
import static org.junit.Assert.*;//引入Assert.*包
public class BaseClassTestNew {//这里不用再继承TestCase类了。
BaseClass baseClass = new BaseClass();
@Test public void methodOne(){//名字随便写,可以按你自己的爱好。但是必须以@Test开头
//还是以assert*来判断
assertTrue(baseClass.methodOne().equals("test.junit.BaseClass"));
}
}
看看多么的简洁,好像少了很多约束,下面通过和junit3的特性进行比较总结junit4的特性:
1.必须引入类TestCase(import junit.framework.TestCase;
è必须引入类Test(import org.junit.Test;),必须引入类(import static org.junit.Assert.*;)
2.必须继承类TestCase (class BaseClassTest extends TestCase)
è不需要
3.测试方法必须以test开头(public void testMethod ())
è不需要,但是类开始的时候要标记 @Test
4.通过assert*方法来判断结果(assertTrue(baseClass.method ().equals("test.junit.BaseClass"));)。
从上面的对比,可以看出junit4与junit3的区别在于:
去掉与类TestCase的偶联性,触发TestCase的地方是在@Test上。