强制 Mockito 返回 null 而不是空列表

问题描述 投票:0回答:1

我用模拟的 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。

java mockito stub
1个回答
0
投票

要指示 Mockito 默认为模拟对象的所有方法返回 null,您可以使用 Mockito.RETURNS_DEFAULTS 答案。这个答案将为所有方法返回默认值,对于非原始返回类型为 null。

 @Mock(answer = RETURNS_DEFAULTS)
 Properties myProperties;

您可以在文档中阅读更多内容answers

© www.soinside.com 2019 - 2024. All rights reserved.