[英]Mocking deep objects in Mockito
我要实现以下目标:
Class A{
List<Class B> list;
}
Class B{
}
@Mock
A a;
when(a.list.isEmpty()).then(true); // this throws an error
通过使用这个:
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
A a;
我必须使用吸气剂:
when(a.getList().isEmpty()).then(true);
但是我不想更改我的代码以在任何地方使用吸气剂。
您不能模拟直接访问成员变量。 因此,您有几种选择:
使用吸气剂。
将成员变量设置为模拟实例( a.list = mock(...)
或等效形式)。
对于像列表这样的琐碎类,使用模拟具有边际价值,因为您可以或多或少地直接设置所需的行为。 因此,在这种情况下, a.list = new ArrayList<>();
就足够了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.