如何模拟一个类别的实例作为参数的类的非静态方法



如何模拟传递给方法的参数类的非静态方法?我正在测试下面的方法:

public Seed getAppleSeed(AppleTree appleTree){
    Seed appleSeed = appleTree.getApple().getSeed();
    //Some logic flow
}

其余课程如下:

public class AppleTree{
    public Apple getApple(){
        return new Apple():
    }
}
public class Apple{
    public Seed getSeed(){
        return new Seed():
    }
}

最终目标是测试我需要嘲笑呼叫的getApple和getseed的getAppleSeed()方法的流程。

谢谢

与嘲笑,这样的:

AppleTree appleTree = Mockito.mock(AppleTree.class);
Apple apple = Mockito.mock(Apple.class);
Seed seed  = new Seed();
Mockito.when(appleTree.getApple()).thenReturn(apple);
Mockito.when(apple.getSeed()).thenReturn(seed);
Seed actual = getAppleSeed(appleTree);
assertThat(actual, is(seed));

尽管实际代码与您问题中概述的内容一样简单,但是我建议无需模拟AppleAppleTree

最新更新