【发布时间】:2017-12-11 20:29:06
【问题描述】:
我有一个遗留类,它有一个我需要测试的静态 void 方法:
public class A {
public static void renameTo()
{
String ext = "." + this.fileName + ".backup";
for (File file : getCSVFile()) {
f.renameTo(new File(file.getAbsolutePath() + ext));
}
public static File[] getAllFiles()
{
//logic to read the CSV files from the class path
}
}
现在我使用 PowerMockito 为它编写了一个测试用例,看起来像这样。现在的问题是,即使只调用了renameTo(),如果我调用PowerMockito.verifyStatic( Mockito.times(10)),测试仍然通过
@RunWith(PowerMockRunner.class)
@PrepareForTest(A.class)
@PowerMockIgnore("javax.management.*")
public class ATest {
@Test
public void testRenameTo() throws Exception {
PowerMockito.mockStatic(A.class);
A.renameTo();
PowerMockito.verifyStatic( Mockito.times(1));
//PowerMockito.verifyStatic( Mockito.times(5));//Passes even though the mehod is called only once
//PowerMockito.verifyStatic( Mockito.times(10);//Passes even though the mehod is called only once
}
}
有人可以解释一下这个问题吗?我可能做错了什么?
【问题讨论】:
标签: java mockito powermock powermockito