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")声明

总结

猜你喜欢

转载自blog.csdn.net/u011025878/article/details/100163280