为方法调用的每个实例返回相同的值

时间:2015-12-03 23:17:08

标签: java mockito

嗨,我没有使用PowerMockito,而是使用PowerMockito并试图模仿这样的东西:

update user 
set disabled = true
where id in
(select user_id from warnings group by user_id having count(*) > 2)

但是我得到了when(any(File.class).canWrite()).thenReturn(Boolean.FALSE) 。基本上,在没有模拟特定实例的情况下,我想模拟文件对象的任何和所有实例,以便为NullPointerException返回FALSE

有人可以帮忙吗?我可以模拟对象,但我正在测试的代码是静态方法。

1 个答案:

答案 0 :(得分:1)

这是不可能的。对于常规的Mockito,你需要在when()调用中使用一些模拟对象,而不是任何匹配器。

对于您的示例,当您说任何(File.class)

when(any(File.class).canWrite()).thenReturn(Boolean.FALSE)

您需要将文件对象实例化为Mock

File fileMock = mock(File.class);    
when(fileMock.canWrite()).thenReturn(Boolean.FALSE)
相关问题