我用模拟的 Properties 类进行了一个简单的测试:
@RunWith(MockitoJUnitRunner.class)
public class MockitoReturnListTest {
@Mock
Properties myProperties;
@Test
public void propertiesTest() {
Set<String> propertyNames = myProperties.stringPropertyNames();
System.out.println(propertyNames);
}
}
我还没有为
stringPropertyNames
方法创建任何存根,但当我调用它时,Mockito 返回一个空集。测试的输出是:
[]
如何指示 Mockito 对所有方法返回
null
而不是空集合? (实际上,我有更大的类,有许多 List<> getSomething()
方法,我希望返回 null)
我知道我可以像这样存根该方法:
@Test
public void propertiesTest2() {
Set<String> propertyNames = myProperties.stringPropertyNames();
when(myProperties.stringPropertyNames()).thenReturn(null);
System.out.println(propertyNames);
}
但我想对所有方法进行某种自动存根以默认返回 null。
要指示 Mockito 默认为模拟对象的所有方法返回 null,您可以使用 Mockito.RETURNS_DEFAULTS 答案。这个答案将为所有方法返回默认值,对于非原始返回类型为 null。
@Mock(answer = RETURNS_DEFAULTS)
Properties myProperties;
您可以在文档中阅读更多内容answers