java - 为什么mockito在 stub 时调用父方法

标签 java junit mocking mockito

为什么mockito要调用 stub 方法。

为什么它在when..thenReturn下实际调用func 我在调试时检查过。

  @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"));
    }
}

public class MyClass {

    public int func(String s) {
        if (s.equals("abc"))
            return 7;
        else
            return 9;
    }
}

所有测试均已成功执行。您能展示如何调用测试吗?

关于java - 为什么mockito在 stub 时调用父方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36447074/

相关文章:

Python 单元测试 : How to patch an entire class and methods

java - AWS Lambda Java/Kotlin 向 SQS 发送消息

java - 在单元测试中调用其他类方法

android - testAndroidTestCaseSetUpProperly 是做什么的

unit-testing - Spock模拟返回错误值

ruby - 在 ruby​​ 中模拟 3rd 方对象的最佳方法是什么?

java - Timer多次添加某个TableRow

java - Clock.systemUTC() 和 Clock.systemDefaultZone() 有什么区别?

java - Hibernate 和父/子关系

java - 如何测试直接在外部 API 上运行的 Java 应用程序