只有在通过 ant 调用 testng 时才会发生对模拟的最后一次调用
no last call on a mock available happening only when calling testng via ant
我的测试堆栈是:
- TestNG - 将此加粗是因为我看到 @runWith 被推荐为仅 JUnit 时的解决方案
- EasyMock
- PowerMock 的 MockStatic
我有一个测试 class,我用 @PrepareForTest(StaticClass.class)
进行了注释
然后在我的测试中我做了一个非常简单的
PowerMock.mockStatic(StaticClass.class);
StaticClass.method(parameter);
expectLastCall().anyTimes();
我遇到了标准 "java.lang.IllegalStateException: no last call on a mock available" 问题,但仅当 运行 来自 ant 的 TestNG 时,而不是来自 Eclipse 的 运行 时。我相信我的 classpath 包括所有必要的 .jar 文件,因为 PowerMock.mockStatic() 被调用得很好并且所有 jar 都被添加到相同的 classpath。
非常感谢任何帮助。
错误最终是由一些不兼容的 powermock 和 testng 版本造成的,并且没有像提到的那样覆盖对象工厂 here
我的测试堆栈是:
- TestNG - 将此加粗是因为我看到 @runWith 被推荐为仅 JUnit 时的解决方案
- EasyMock
- PowerMock 的 MockStatic
我有一个测试 class,我用 @PrepareForTest(StaticClass.class)
进行了注释然后在我的测试中我做了一个非常简单的
PowerMock.mockStatic(StaticClass.class);
StaticClass.method(parameter);
expectLastCall().anyTimes();
我遇到了标准 "java.lang.IllegalStateException: no last call on a mock available" 问题,但仅当 运行 来自 ant 的 TestNG 时,而不是来自 Eclipse 的 运行 时。我相信我的 classpath 包括所有必要的 .jar 文件,因为 PowerMock.mockStatic() 被调用得很好并且所有 jar 都被添加到相同的 classpath。
非常感谢任何帮助。
错误最终是由一些不兼容的 powermock 和 testng 版本造成的,并且没有像提到的那样覆盖对象工厂 here