我正在使用mockito进行存根。
这是我的设置的最小代表。假设getter和setter已经到位
class Person {
String name;
}
class Car {
Person owner;
}
class CarPool {
Car car;
String getOwner() {
car.getOwner.getName()
}
}
class testClass {
CarPool carPool = new CarPool();
Car car = mock(Car.class);
when(car.getOwner.getName()).thenReturn("name");
carPool.setCar(car);
assertEquals(carPool.getOwner, "name");
}
我在尝试此操作时得到一个nullpointer,因为getOwner并非全部存根。有可能像这样做一个茬吗?如果没有,在这种情况下最好的解决方案是什么?
答案 0 :(得分:2)
你可以做深度剔除。
Car car = mock(Car.class, Mockito.RETURNS_DEEP_STUBS);
请注意,深层存根通常意味着代码不干净。请考虑文档中的以下引用:
每当一个模拟器返回模拟器时,一个仙女就会死亡。