背景
在使用PowerMock进行Mock对象来简化单元测试时,遇到单例的情况可能会出现空指针异常。情况如下:
原代码:
1 | import SingletonA |
测试代码:
1 | (PowerMockRunner.class) |
结果就运行异常,在
PowerMockito.when(SingletonA.getInstance().incr(Mockito.any())).thenReturn(1);
这句提示NullPointException。
解决办法
这里是由于Mock的是一个单例,获取之后其实是一个空的对象,那么自然没办法调用其方法(.incr()
)。
解决办法是先mock一个单例对象并返回,再对这个对象的方法进行模拟。
代码如下:
1 | (PowerMockRunner.class) |