此处检测到未完成的存根
Unfinished stubbing detected here
我有一个 class 如下所示:
public class ClassOne {
public void function1(InputStream input, OutputStream output, Context context) {
.....
function2(List, String, String);
}
private void function2(List, String, String){...}
}
我正在尝试为此 class 编写单元测试,它看起来像:
@RunWith(PowerMockRunner.class)
@PrepareForTest(ClassOne.class)
public class ClassOneTest {
private ClassOne classVar;
private ClassOne classSpy;
@Before
public void setup() {
classVar = new ClassOne();
classSpy = new ClassOne(classVar);
}
@Test
public void testFunction1() {
....
PowerMokito.doNothing().when(classSpy, "function2", List, string, string);
}
}
我在上面的单元测试中遇到这个错误:
org.mockito.exceptions.misusing.UnfinishedStubbingException:
Unfinished stubbing detected here:
-> at org.powermock.core.classloader.ClassloaderWrapper.runWithClassClassLoader(ClassloaderWrapper.java:51)
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, which is not supported
3: you are stubbing the behaviour of another mock inside before 'thenReturn' instruction if completed
我查看了几篇文章,但直到现在都没有帮助。任何帮助将不胜感激!
您没有调用 spy()
,这导致了问题
@RunWith(PowerMockRunner.class)
@PrepareForTest(ClassOne.class)
public class ClassOneTest {
private ClassOne classVar;
private ClassOne classSpy;
@Before
public void setup() {
classVar = new ClassOne();
classSpy = spy(new ClassOne(classVar));
}
@Test
public void testFunction1() {
// Arrange
PowerMokito.doNothing().when(classSpy, "function2", List, string, string);
// Act
....
}
}
我有一个 class 如下所示:
public class ClassOne {
public void function1(InputStream input, OutputStream output, Context context) {
.....
function2(List, String, String);
}
private void function2(List, String, String){...}
}
我正在尝试为此 class 编写单元测试,它看起来像:
@RunWith(PowerMockRunner.class)
@PrepareForTest(ClassOne.class)
public class ClassOneTest {
private ClassOne classVar;
private ClassOne classSpy;
@Before
public void setup() {
classVar = new ClassOne();
classSpy = new ClassOne(classVar);
}
@Test
public void testFunction1() {
....
PowerMokito.doNothing().when(classSpy, "function2", List, string, string);
}
}
我在上面的单元测试中遇到这个错误:
org.mockito.exceptions.misusing.UnfinishedStubbingException:
Unfinished stubbing detected here:
-> at org.powermock.core.classloader.ClassloaderWrapper.runWithClassClassLoader(ClassloaderWrapper.java:51)
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, which is not supported
3: you are stubbing the behaviour of another mock inside before 'thenReturn' instruction if completed
我查看了几篇文章,但直到现在都没有帮助。任何帮助将不胜感激!
您没有调用 spy()
,这导致了问题
@RunWith(PowerMockRunner.class)
@PrepareForTest(ClassOne.class)
public class ClassOneTest {
private ClassOne classVar;
private ClassOne classSpy;
@Before
public void setup() {
classVar = new ClassOne();
classSpy = spy(new ClassOne(classVar));
}
@Test
public void testFunction1() {
// Arrange
PowerMokito.doNothing().when(classSpy, "function2", List, string, string);
// Act
....
}
}