TestNG的静态方法mock的步骤
2019-07-21 10:44
169 查看
最近团队内部对程序中使用大量的
静态方法,而公司要求要有sonar扫描覆盖率的,因为在大量使用静态方法的地方若不mock,则覆盖率达不到。于是网上很少的文章讲解对静态方法的mock,大多都是如何使用
powermock或
Junit,一般对于
private或
public方法
正常逻辑是有文章讲解,那么今天我就把静态方法覆盖的方式梳理了一下。避免每个人过来都来问口口相传,形成文档。
在Test方法中需要用到TimeUtil.java中的静态方法。示例Mock操作如下:
1.添加maven配置依赖
<!-- 单元测试mock --> <dependency> <groupId>org.mockito</groupId> <artifactId>mockito-all</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.powermock</groupId> <artifactId>powermock-core</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.powermock</groupId> <artifactId>powermock-api-mockito</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.powermock</groupId> <artifactId>powermock-module-testng</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <scope>test</scope> </dependency> <!-- 单元测试 -->
2.在Test类添加以下注解
@SuppressStaticInitializationFor("com.yuesf.utils.TimeUtil") @PowerMockIgnore("java.lang.*") @PrepareForTest(value = TimeUtil.class) public class SaleOrderBizImplTest { }
3.Test类中添加以下方法
@ObjectFactory public IObjectFactory getObjectFactory() { return new org.powermock.modules.testng.PowerMockObjectFactory(); } @BeforeClass(alwaysRun = true) public void setUp() { MockitoAnnotations.initMocks(this); }
4.在测试方法添加以下注解
@PrepareForTest(TimeUtil.class)
示例
@PrepareForTest(TimeUtil.class) @Test public void processOrderItemLabel() { }
验证结果:
相关文章推荐
- centOS7 桥接模式设置静态Ip的方法步骤
- Mockito PowerMock 静态 方法 @Spy 对象方法 mock
- webpack中如何加载静态文件的方法步骤
- VuePress 静态网站生成方法步骤
- 静态方法mock 和verify
- nginx配置伪静态和适配客户端的方法步骤
- java单元测试之Mock静态方法
- destoon的URL Rewrite(伪静态)设置方法【完整步骤】
- Jmockit对类静态方法mock
- 如何在Java Unit Test中mock 静态方法
- Mockito为什么不能mock静态方法
- 单元测试笔记,静态方法的测试和Mock
- 如何用PowerMockito 测试静态方法
- ASP.NET Core中预压缩静态文件的方法步骤
- vue+axios+mock.js环境搭建的方法步骤
- 最新vue 在webpack.dev.conf.js文件 配置如何mock数据? 以下是方法和步骤 但是 就是访问不到?求解!!!
- Node.js一行代码实现静态文件服务器的方法步骤
- django模板加载静态文件的方法步骤
- 关于静态方法static方法的一些新发现……
- 静态(变量---方法) 非静态(变量---方法)