这两天在学习过程中碰到了JUnit4,就来学习一下。
1.JUnit4应用的意义?
在写代码的阶段就对代码进行单元测试,减少后期测试排错的时间。
2.JUnit4是什么?
JUnit是一个编写客户用测试集的简单框架。它是XUnit的一个子集。
XUni4是一套基于测试驱动开发的测试框架,包含了PythonUnit,CppUnit,JUnit。
3.为什么要用测试框架?
测试框架使用断言机制对编写的程序进行有目的的测试。
4.JUnit4测试简单应用实例:
打开Eclipse(里面自带了JUnit4的框架,所以可以不用单独下载),创建一个普通的JAVA项目JUnitDemo。
项目建好后在根目录下新建一个源代码文件(Source Folder),名字改为test,因为测试代码和需要测试的代码只要包名相同就可以测试,所提我们一般把测试代码都放在这个test文件里,等到项目完成后测试也没有问题了就可以直接删除这个目录,就删除了所有测试用的代码,直接发布项目,很方便。
然后在src下新建一个类JUnitDemo
public class JUnitDemo{
public int add(int a,int b){
return a+b;
}
public String printString(String s){
return s;
}
}
然后在你要测试的类上面右键,新建一个JUnit Test Case,将文件名选到test,点击Next,就可以勾选你想要测试的方法,Object类里面的方法不用管它,点击Finish。
这样就建好了一个测试JUnitDemo类的测试类的模版,如下。
import static org.junit.Assert.*;
import org.junit.Test;
public class JUnitDemoTest {
@Test
public void testAdd() {
fail("Not yet implemented");
}
@Test
public void testPrintString() {
fail("Not yet implemented");
}
}
我们发现这个类被叫做JUnitDemoTest,意思就是对JUnitDemo类进行测试的一个类,JUnitDemoTest(测试类)里面有对UnitDemo(被测试类)里的方法的测试,也就是@Test底下的方法。
@Test底下的方法(testAdd()、testPrintString() )中test后面的名字就是我们JUnitDemo类中我们想要测试的方法(Add、PrintString),这时已经为我们创建好测试模版了。
我们需要做的就是按照模版更改测试方法里面的代码。
如何测试呢?我们这里采用断言机制进行测试。
Assert断言
在这里我们用到了assertEquals(expected, actual)
方法。
其中expected=你预期的值,actual=你要的测试方法返回的值。
回到我们的例子里,我们就可以这样更改我们的测试方法,先将fail("Not yet implemented");
删除,这句话是默认的模版。
接着我们将assertEquals(expected, actual)
方法加进去,并输入你期望的值和你测试的类的对象的方法。
@Test
public void testAdd() {
assertEquals(3, new JUnitDemo().add(1, 2));//预期值是3,测试方法add()传入1,2后是不是得出3。下同。
}
@Test
public void testPrintString() {
assertEquals("PrintString", new JUnitDemo().printString("PrintString"));
}
然后右键运行JUnit Test,弹出JUnit运行视图,发现0 Errors,测试完成!