大蜕

Mockito 之初步使用静态测试方法

mockito,一种🌿口味的鸡尾酒🍸,用这种名字做的单元测试框架,一下就吸引了窝~ 这两天在搜索问题的时候,搜到了以前同事的博客,内心感到莫名的开心. 昨天斯托卡了下以前同事的简书博客,真为我们这群勤于更新博客的人感到骄傲😏

背景

这几天写了一个项目,主要使用System.exit()来判断结果的成功与失败,在写单元测试的时候,需要用到可以调取这种静态方法的工具,因为System.exit(0)会使得JVM进程退出,之后是不会有返回结果的,于是有了这个特殊的需求,发现了PowerMock可以很好地满足这一点

  1. 主要需要三个依赖
powermock-api-mockito
powermock-module-junit4
powermock-api-mockito-common
  1. 在单元测试类需要以下注解
@RunWith(PowerMockRunner.class)
@PrepareForTest({System.class, App.class(待测试类)})
@PowerMockIgnore(“javax.net.ssl.*")

其中PowerMockIgnore(“javax.net.ssl.*")出现的原因,是因为在我的方法中需要用到HttpClient相关的接口实现,不想使用PowerMock给我初始化好的同样的接口实现 3. 主要涉及到的方法

PowerMockito.mockStatic(System.class);
App.main(null);
PowerMockito.verifyStatic();
System.exit(-1);
System.out.println(“should return -1);

这样可以得到关于 System.exit() 的期望返回结果