TestNG的静态方法mock的步骤
2019-08-16 10:51:35来源:博客园 阅读 ()
TestNG的静态方法mock的步骤
最近团队内部对程序中使用大量的静态方法
,而公司要求要有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() {
}
验证结果:
原文链接:https://www.cnblogs.com/yuesf/p/11220451.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:反射为单级属性赋值
下一篇:Java异常与处理机制
- 类的继承,方法重新中修饰符如何定义 2020-06-10
- java里面main方法中的String[]args 2020-06-07
- 错误: 在类中找不到 main 方法, 请将 main 方法定义为: & 2020-06-06
- 学习笔记之方法引用 2020-06-06
- Java连载120-反射机制获取构造方法和父类、父接口 2020-06-05
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash