本文主要是介绍Mock及PowerMock高级使用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
引言
单元测试大家都知道,但是简单的mockito不支持对静态及私有方法的mock,显的较为单薄;本文结合实例分析powermock的使用
包引入
需要注意的点:
1.mock,junittest,及powermock有包对应关系
2.junittest与testng混用时,powermock也有对应包依赖关系;maven使用testng进行测试,建议使用testng
3.powermock的使用依赖->javaassist
使用示例
1.简单的使用案例
2.mock静态方法
3.System,HttpClient等特殊类的静态方法mock
System.currentMillis->与正常mock不同,由于调用的是本地方法,谁调用,声明谁
HttpClient(apche)->需要将ssl相关class ignore掉,@PowerMockIgnore({ "javax.net.ssl.*",
"javax.management.*" })
4.mock私有方法,构造方法
使用WhiteBox
5.mock类加载时就初始化的私有静态属性
使用@SuppressStaticInitializationFor("com.cloudwiz.common.conn.TaylorDetectorConnPool")声明
总结
这篇关于Mock及PowerMock高级使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!