我正在使用 powermock + easymock + testng
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="My Module" suite-preserve-order="true" verbose="10"
object-factory="org.powermock.modules.testng.PowerMockObjectFactory">
<test verbose="2" name="module1" annotations="JDK">
<classes>
<class name="com.mymodule.TestClass1" />
<class name="com.mymodule.TestClass2" />
<class name="com.mymodule.TestClass3" />
</classes>
</test>
</suite>
Test1 & 2 一起工作。当我添加 Test3 时,它们开始失败并出现各种错误,例如 java.lang.IllegalStateException: no last call on a mock available
我通过添加注释 @PrepareEverythingForTest 修复了 Test1
但我无法修复本身已经开始失败的测试 2 和 3。测试 3 单独工作正常。值得一提的是,这些类共享一些模拟类,并且它们自己已在彼此的测试用例中被模拟。默认情况下,我使用的注释像
@PrepareOnlyThisForTest({TestClass2.class,SharedClass.class})
我该如何解决这些问题。看起来在测试中共享了一些嘲笑。如何阻止它。
请回复