MOCKITO:验证布尔方法(或其他类型)



我知道您只能验证void方法。但是我实际上问自己为什么。

我最近偶然发现了一个单位测试,我确实需要验证已经拨打了某个呼叫。准确地说,它是" newfolder.mkdirs()"。在我看来,这种方法的行为几乎是"无效的"。但是,作为"功能",开发人员为此功能提供了布尔返回类型,以查看该动作是否成功。

很好,但是在我的测试中,我不太在意这一点。我只想确保完成此通话,就像我想确保完成重要的空白通话一样。

那么现在有可能做到这一点吗?我很坚持这个问题,甚至无法想象一个小问题的解决方法:/有人有一个很好的,简短的主意?


我完全错了:您可以验证所有内容。我放错了括号。

我有:

verify(newFolder.mkdirs());

我需要:

verify(newFolder).mkdirs();

愚蠢的我;)

我可能被误解了,但是它在哪里说您只能验证void方法?

例如...

import org.junit.Test;
import static org.mockito.Mockito.*;
public class VoidTest {
    private interface TestClass {
        boolean doStuff(String arg);
    }
    @Test
    public void doIt() {
        TestClass tc = mock(TestClass.class);
        tc.doStuff("[SOMETHING]");
        verify(tc).doStuff("[SOMETHING]"); // OK
        verify(tc).doStuff("[SOMETHING ELSE ]"); // BOOM!
    }
}

相关内容

  • 没有找到相关文章