gpt4 book ai didi

java - 为什么mockito对象使用的方法不显示println?

转载 作者:行者123 更新时间:2023-12-01 22:09:46 25 4
gpt4 key购买 nike

所以我想打印一些字符串。当我这样做时:

MyClass myClass = new MyClass();
myClass.myFunction(myList, path);

它告诉我:

somepath/ABC
somepath/DEF
somepath/PQR

但是当我这样做时:

MyClass myClass = mock(MyClass.class);
myClass.myFunction(myList, path);

它没有向我显示任何内容。是否可以在模拟对象上返回这些字符串?

最佳答案

由于您使用模拟对象,因此您可以模拟其 myFunction 方法的行为,如下所示:

when(myClass.myFunction()).thenReturn("somepath/ABC");

请注意,仅当方法的返回类型为 String 时,此代码才会编译。

如果你的方法返回类型是void,那么你不应该模拟返回值,而应该调用real方法:

Mockito.doCallRealMethod().when(myClass).myFunction();

它将执行原始方法实现中的println语句。不过,这种方法有一些缺陷 - 如果方法使用某些类成员,则可能会出现 NullPointerException(或其他异常),这些成员将为 null 用于模拟对象,除非您将它们设置为引用其他模拟对象。

关于java - 为什么mockito对象使用的方法不显示println?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32045062/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com