JUnit入门笔记

来源:互联网 发布:淘宝网怎么开网店啊 编辑:程序博客网 时间:2024/06/06 00:36

JUnit的约定写法:
工程包:com.JD
工程类:HelloWorld.java
方法名称:add();

测试包:com.JD.test
测试类:HelloWorldTest.java
方法名:testAdd();

所以,测试包和工程包是两个独立的包

JUnit一些基本的方法:
assertEquals(x,b) —>x是你认为程序最终应该得到的结果,b是程序实际的结果,判断是否符合预期。
assertTrue(Conditions) —>conditions里面是一个布尔表达式,用来判断真假。
assertTrue(String message,Conditions) —>跟上面不同的是,当测试未通过时,message信息会被输出出来。
在JUnit4之后,引入了新的方法assertThat(),理论上它可以包含所有的以上assert..方法,但是需要导入另一个包harmcrest,特别是使用
里面的Matchers类

Error和Failure的区别:
Failure: 是为了判断你的程序运行结束和预期的结果是否一致的,重点在结果上的判断,所以是测试出错。
Error:是程序本身出了错误,属于都得不到结果的情况,为程序出错。

JUnit4里的Annotation(断言,注释)
1.@Test —>导入包 import org.Junit.Test;
要想测试工程类的一个方法,除了一开始创建测试类时选择的方法外,也可以通过在方法上加@Test符号。这样就可以同时测多个方法。

2.@Test(expectrd=XXX)
这就是为了防止Error出现采取的措施,大概的意思是:我们知道自己的程序会出现Error错误,属于我们预料之内的,我们希望JUnit不去理会这
个Error,好让测试走完,而且这个Error一定要暴露出来,且要在failure出现前暴露出来。
思考:写了@Test(expectrd=XXX)这句断言,就表明程序一定会抛出这个XXX异常,我们又知道,在每个测试方法里,如果出现错误,无论是Error
或者Failure后面的语句都不会执行,相反,如果没有错误,程序就会一直走下去,直到发现错误,或程序走完。所以,也就说明了这个问题,既然
已经说明了会出现XXX这个错误,那么就一定要让JUnit捕获到,所以①一定要抛出这个错误②一定要写在可能出现Failure的代码前面,因为,一旦
出现了Failure程序就结束,所以JUnit最终没有捕获到XXX错误,所以,一定要写在可能出现Failure的代码前面。而且这种不匹配也会导致JUnit抛
出一个预期错误与出现错误不匹配的Error。

3.@Test(timeout=XXX)
测试的方法要在XXX个毫秒内结束。

4.@Ignore —>使用什么断言就要导入对应的JUnit包,这个:import org.JUnit.Ignore;
表示此方法,在这轮测试中被忽略,因为可能其他的方法都完成了,这个还没完成,所以先把它空出一轮。

5.@Before —>import org.JUnit.Before;
在测试类的每个方法测试前(不含Ignore的方法)都执行一次,但并不被测试,也就是说,此方法只是执行一段代码而已,不属于被测试的方法。
使用场景:比如说你要测试一个方法,但是此方法依赖另一个方法,所以我们就必须要使用Before;又比如说,我们测试的那个方法前需要打开
一个文件,那么我们就可以给打开文件的方法加上Before;

6.@After —>import org.JUnit.After;
跟Before同理,只不过是在每个测试方法后执行一次。

7.@BeforeClass —>import.org.JUnit.BeforeClass
在所有测试方法方法执行前执行的方法,并且只执行一次,区别于Before,因为此方法要在类还没初始化的时候就要运行,所以方法要static修饰
使用场景:如果你想测试一些方法,这些方法都有一个前提条件,且此条件执行一次就可以,比如说你想测JDBC的一些方法,那么数据库的链接就
可以写入@BeforeClass里

8.@AfterClass —>import.org.JUnit.AfterClass
跟BeforeClass同理,只是在所有的测试方法结束后执行一次。

如果想要同时测试多个类的方法?
这是JUnit的关键所在,即使你写了特别多的类,也可以同时测试,而如果想要依靠写main办法,是很难办到的,因为一次只能执行一个main方法,而且
数量太多,光凭借眼睛看的话就不实际。
方法:
1.先建立一个测试类和工程类,就跟第一个测试类一样的方法。
2.然后右键点击Run as –> Run Configuration –>勾选下面的选项Run All Tests…… –>search –>选择你的测试方法同时执行范围,然后
点击RUN就可以啦。