Mockito anyBoolean() 返回时匹配器异常

Евг*_*цов 1 java junit android mockito

尝试用 Mockito 编写一个简单的单元测试:

@Test
    public void toggleBlockingControlTest_turnOff() {
        when(mainViewPresenter.getAppSettingsStorage().loadBlockingStatus())
                .thenReturn(Mockito.anyBoolean());

        AppSettingsStorage appSettingsStorage = mainViewPresenter.getAppSettingsStorage();
        boolean statusBefore = appSettingsStorage.loadBlockingStatus();

        Mockito.verify(appSettingsStorage).saveBlockingStatus(Mockito.eq(!statusBefore));
    }
Run Code Online (Sandbox Code Playgroud)

在运行时我得到 org.mockito.exceptions.misusing.InvalidUseOfMatchersException: 在这个字符串:

.thenReturn(Mockito.anyBoolean());
Run Code Online (Sandbox Code Playgroud)

我是 Mockito 的新手,不明白为什么这个框架不能返回任何布尔值???

pba*_*pai 5

when(mainViewPresenter.getAppSettingsStorage().loadBlockingStatus())
                .thenReturn(Mockito.anyBoolean());
Run Code Online (Sandbox Code Playgroud)

在这里您应该返回Boolean.TRUEBoolean.FALSE。如果您不关心这个布尔值,那么:

代替:Mockito.anyBoolean() --> Boolean.TRUE /Boolean.FALSE