Java 为什么mockito在存根时调用父方法
为什么mockito调用stubbed方法 为什么在when..thenReturn下实际调用func 我在调试时已经检查过了Java 为什么mockito在存根时调用父方法,java,junit,mocking,mockito,Java,Junit,Mocking,Mockito,为什么mockito调用stubbed方法 为什么在when..thenReturn下实际调用func 我在调试时已经检查过了 @Test public void function(){ MyClassChild obj = mock(MyClassChild.class); when(obj.func("abc")).thenReturn(3); } ... class MyClass { public int fu
@Test
public void function(){
MyClassChild obj = mock(MyClassChild.class);
when(obj.func("abc")).thenReturn(3);
}
...
class MyClass {
public int func(String s) {
if (s.equals("abc"))
return 3;
else
return 1;
}
}
class MyClassChild extends MyCLass {
}
我尝试通过进行以下测试来重播您的问题:
public class StackTest {
@Test
public void mockedFunction() {
MyClass obj = mock(MyClass.class);
when(obj.func("abc")).thenReturn(3);
assertEquals(3, obj.func("abc"));
}
@Test
public void function() {
MyClass obj = new MyClass();
assertEquals(7, obj.func("abc"));
}
}
及
成功执行的所有测试。你能展示一下你是如何调用这个测试的吗?
MyClass
在OP中不是公共的……可能这就是问题所在。你们可以看看@Som Bhattacharyya在一篇评论中指出了什么我已经弄明白了,我在模仿子类并尝试在父函数中使用“when..then()”。我认为mockito在父类方法中不能正常工作。
public class MyClass {
public int func(String s) {
if (s.equals("abc"))
return 7;
else
return 9;
}
}