Testng Powermock模拟无效方法引发错误

Testng Powermock模拟无效方法引发错误,testng,mockito,powermock,Testng,Mockito,Powermock,我正在使用Powermockito,mockito和TestNG。我的测试类扩展了PowerMockTestCase。我想模拟一个void方法。为此,我使用了以下示例语法 @PrepareForTest(TestClass.class) class Sample extends PowerMockTestCase{ @BeforeClass public void beforeClass(){ TestClass obj = PowerMockito.spy(TestClass.getInst

我正在使用Powermockito,mockito和TestNG。我的测试类扩展了PowerMockTestCase。我想模拟一个void方法。为此,我使用了以下示例语法

@PrepareForTest(TestClass.class)
class Sample extends PowerMockTestCase{

@BeforeClass
public void beforeClass(){
TestClass obj = PowerMockito.spy(TestClass.getInstance());
PowerMockito.doNothing().when(obj).voidMethodName(Matchers.any(Type1.class), Matchers.anyString(), Matchers.any(Type2.class));
}
当我给出这个时,我得到:

FAILED CONFIGURATION: @BeforeClass beforeClass
org.mockito.exceptions.misusing.UnfinishedStubbingException: 
Unfinished stubbing detected here:
-> at org.powermock.api.mockito.internal.PowerMockitoCore.doAnswer(PowerMockitoCore.java:36)

E.g. thenReturn() may be missing.
Examples of correct stubbing:
    when(mock.isOk()).thenReturn(true);
    when(mock.isOk()).thenThrow(exception);
    doThrow(exception).when(mock).someVoidMethod();
Hints:
 1. missing thenReturn()
 2. you are trying to stub a final method, you naughty developer!
你能让我知道我错过了什么吗


谢谢

如果void方法不是最终方法,您不需要使用PowerMockito!
还有,我不明白你为什么要嘲笑“doNoting()”。如果您有默认的模拟行为,当调用void方法时抛出异常,并且对于特定的测试用例,您希望重写此行为,则可以使用此方法。如果是您的情况,将完全删除这一行。

还尝试使用,PowerMockito.doAnswer(){@Override public void answer(){return null}});但是仍然得到相同的例外情况您的voidMethod是最终的方法吗?如果您在上课之前使用
@而不是在上课之前使用
>,是否有效?感谢Sourabh的回复。因为我使用的是TestNG,所以不能使用@Before注释,因为它用于JUnit。我覆盖的void方法不是final方法。