item
在这个例子中,我为import java.lang.Math;
import static org.mockito.Mockito.*;
import java.util.Map;
import java.util.HashMap;
public class MyClass
{
class Test {
int a = 10;
Test() {}
}
class OtherClass
{
public OtherClass()
{}
Map<String, Double> f() {
System.out.print("Just for testing");
return new HashMap<>();
}
Test getT() {
return new Test();
}
}
public static void main(String[] args)
{
OtherClass c = mock(OtherClass.class);
Map<String, Double> test = c.f();
System.out.println(test.size());
MyClass.Test t = c.getT();
System.out.println(t);
}
}
类型创建了模拟对象。
OtherClass
返回空地图同时c.f()
对我来说有点奇怪
返回null。
你能帮我理解一下这个行为吗?
答案 0 :(得分:2)
如果您没有为Map
提供存根,Mockito将返回一张空地图。这是一个记录在案的功能,由JavaDocs确认:
默认情况下,对于返回值的所有方法,mock返回null,空集合或适当的原始/原始包装器值(例如:0,false,...表示int / Integer,boolean / Boolean,...)。