一、建立测试目录
测试包类路径与被测试包类保持一致
二、建立测试类
类名在被测试类名后面加上Test
(一)配置文件
1、pom.xml
1 | <dependency> |
Mockito是一个流行的Mocking(模拟测试)框架,通过使用Mocking框架,可以尽可能使unit test独立。
(二)构建测试类
实例化被测试类对象
1 | private BGWorkStorage bgWorkStorage = new BGWorkStorage(); |
模拟变量
1 |
|
定义方法内部用到的返回结果
1 | private List<UsersBo> userBoList; |
初始化mock变量
1 |
|
设置上下文参数
1 | //设置上下文 |
(三)期望、断言
1 | // 设置返回对象 |
1 | bgWorkStorage.processData(workMQMessageBoList); |
断言执行次数还有这些函数方法:never()
,atLeast()
,atLeastOnce()
,atMost()
timeout(100).times(2)
代表100毫秒内被调用两次
(四)PowerMock
1 | ({BGWorkStorageTest.class,CollectionUtils.class, PropertiesUtil.class}) |
1 |
|
1 | // mock工具类 |
(五)期望异常、模拟异常捕获
1 | // 期望捕获异常: |
1 | // 模拟void函数 |
1 | // 模拟方法抛出异常 |
补充:
when()匹配固定字符串的方式:
1 | when(AcctFileProcessUtil.getNodeElement(anyString(), eq("MemProvCode"), eq("MemProvCode"))).thenReturn(null); |
对于工具类没有返回值的情况,跳过执行:
1 | PowerMockito.mockStatic(FileUtils.class); |
对静态方法进行断言(前提:先使用PowerMock的注解)
1 | PowerMockito.verifyStatic(times(1)); |