单元测试Junit4
单元测试
单元测试即所谓的白盒测试,跟main方法差不多,不过更加的方便,更能提交效率
这里记录的是用idea进行单元测试,eclipse大概就是快捷键不一样了,其他都是一样的
我们这里用的是junit4进行单元测试
进行单元测试,一般都建立一个与src同级的test目录,用来放进行单元测试的类,用于跟业务代码的区分
用junit测试需要导入的jar
- junit-4.12.jar
- hamcrest-core-1.3.jar
具体的步骤如下:
0. 导入jar包
-
创建一个与src平级的tests目录
-
创建一个类,并实现一个功能函数
-
右键- go to - Test,选择 create new Test 或者 ctrl + shift + t ,选择create new Test
-
最上面的Testing Library 选择JUnit4,最下面的选择要测试的方法
-
在test中生成的类中,调用要测试的方法
-
运行测试方法,点击方法旁边的图标,如果运行出现绿色的条则该方法测试通过,有三种运行方法:
- run
- debug
- run wth coverage (会显示方法执行的详细信息)
同时运行多个测试类,可以使用测试套件:suite,使用的方式是创建一个空类,使用注解的方式,把要一起执行的测试类作为参数传入空类中,执行空类就会执行传入的测试类,使用方法如下:
package com.manager.junit;
import org.junit.runner.*;
import org.junit.runners.Suite;
@RunWith(Suite.class)
@Suite.SuiteClasses({JunitTest.class})
public class SuitTest {
}
报错:junit4的报错方式有两种:error 和 failure
error指的是被测试方法有错误
failure指的是被测试方法没有错误,但是执行结果不正确,导致测试方法失败,或者测试方法本身有错误
注解:
@Test 标注该方法是测试方法
@Test(param) 注解可以传入参数,常用的如excepted="异常的类名",timeout="int" 测试类执行的限制时间,超出时间也算是测试失败
@Ignore 一个类中存在多个测试方法,如果执行这个测试类,该注解可以让标注的方法跳过执行
@Ignore("String") 标注的方法会跳过执行,但是会打印出输入的字符串
@BeforeClass 在所有的测试方法执行前执行
@before 在每一个测试方法执行前执行一次
@after 在每一个测试方法执行完后执行一次
@AfterClass 在所有的测试方法执行完后执行