在这方面有问题。我过去经常使用Powermockito。通常情况下,这是相当顺利的。我想我会把我的问题发布出来,而不是继续翻找例子。因此,我们的目标是验证对类的new调用。我不认为这是powermockito最受欢迎的特性。下面是测试结果:
import static org.powermock.api.mockito.PowerMockito.verifyNew;
import static org.powermock.api.mockito.PowerMockito.whenNew;
@RunWith(PowerMockRunner.class)
@PrepareForTest(ClassUnderTest.class)
public class VerifyNewTest {
ClassUnderTest myClassUnderTest = new ClassUnderTest();
@Before
public void setUp() throws Exception {
}
@Test
public void test() throws Exception {
whenNew(Collaborator.class).withNoArguments().thenReturn(new Collaborator());
myClassUnderTest.doSomething();
verifyNew(Collaborator.class).withNoArguments();
}
}和所说的类
public class ClassUnderTest {
public void doSomething() {
new Collaborator();
}
}
public class Collaborator {
}我的目标是让这一切变得尽可能简单。我想我本可以添加一些模拟对象并截断一些行为。不管怎样,我明白了。
org.mockito.exceptions.misusing.UnfinishedStubbingException: Unfinished stubbing detected here:
-> at org.powermock.api.mockito.internal.invocationcontrol. MockitoNewInvocationControl.expectSubstitutionLogic(MockitoNewInvocationControl.java:65)例如,thenReturn()可能丢失。正确的存根示例:
when(mock.isOk()).thenReturn(true);
when(mock.isOk()).thenThrow(exception);
doThrow(exception).when(mock).someVoidMethod();
提示:
缺少thenReturn()
发布于 2016-09-27 15:21:58
在whenNew()子句中返回模拟对象在您的情况下可以工作。
@Test
public void test() throws Exception {
whenNew(Collaborator.class).withNoArguments().thenReturn(mock(Collaborator.class));
myClassUnderTest.doSomething();
verifyNew(Collaborator.class).withNoArguments();
}https://stackoverflow.com/questions/21609645
复制相似问题