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

BAE*_*RUS 6 java testing verify void mockito

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

我最近偶然发现了一个单元测试,我真的需要验证是否已经进行了某次调用.确切地说,它是"newFolder.mkdirs()".在我看来,这种方法的行为几乎是"无效的".但作为一个"功能",开发者为此函数提供了一个布尔返回类型,以查看操作是否成功.

很好,但是在我的测试中,我并不关心那些我扔掉我的嘲笑的地方.我只是想确保完成这个调用,就像我想要确保完成重要的void调用一样.

那么现在有可能这样做吗?我对此非常感兴趣,甚至无法想象这个小问题的解决方法:/有人有一个好的,简短的想法?


我完全错了:你可以验证一切.我放错了括号.

我有:

verify(newFolder.mkdirs());
Run Code Online (Sandbox Code Playgroud)

我需要:

verify(newFolder).mkdirs();
Run Code Online (Sandbox Code Playgroud)

傻我;)

Bre*_*etC 2

我可能误解了,但是哪里说只能验证 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!
    }
}
Run Code Online (Sandbox Code Playgroud)