【发布时间】:2013-02-12 01:17:12
【问题描述】:
我正在尝试测试一些严重依赖静态方法调用的遗留代码。
基本上,我有一个类 A,它带有方法 b() 和 c()。 A.b() 返回 void,A.c() 返回一个值。
如果真正的 A.b() 被调用,被测类抛出异常,所以我需要它什么都不做。但是,如果我使用:
PowerMockito.spy(A.class);
PowerMockito.doNothing().when(A.class);
然后我不能模拟 A.c() 来返回我需要的值。这是因为行
PowerMockito.when(A.c()).thenReturn(value);
抛出异常:Only void methods can doNothing()。
有什么方法可以让 A.b() 什么都不做并“覆盖” A.c() 以返回正确的值?
【问题讨论】: