読者です 読者をやめる 読者になる 読者になる

Mockitoでvoidメソッドをゴニョゴニョする

doAnswer を使うと、Mockのvoidメソッドの中でゴニョゴニョできる。
全然違うことで悩んでいて見つけた方法なので、使い所はよくわからない(笑)
けど、メモとして残しておく。

以下はSpockで書いた場合で、メソッドの呼ばれた回数を集計してる。
(実際に回数を集計したいときは times() を使えばOK)

def "voidメソッドでゴニョゴニョする"() {
        setup:
        Hoge hoge = mock(Hoge.class);
        int count = 0;
        Mockito.doAnswer(new Answer<Void>() {
            @Override
            Void answer(InvocationOnMock invocationOnMock) throws Throwable {
                count++
                return null
            }
        }).when(hoge).mockMethod()

        when:
        // do something

        then:
        // count assertion
        count == 1
    }