JMockitで@Mock(invocations=2)と書くと、2回呼ばれた事の確認テストができます。
また、2回よりも多く呼ばれたり少なく呼ばれた場合はエラーとなります。
以下はlog4jのinfoメソッドを2回呼ばれることを確認する時のテストです。
1 2 3 4 5 6 7 8 9 10 11 |
new MockUp<Log4JLogger>() { @Mock(invocations = 2) public void info(Object obj) { // 期待値 String expected = "終了"; // 実行結果 String actual = obj.toString(); // 検証 assertThat(actual, is(expected)); } } |
@Mock(invocations = 0)とすると、そのメソッドが呼ばれないことを確認することができます。
1 2 3 |
@Mock(invocations = 0) private void aaaMethod() { } |
@Mock(minInvocations = 1)と指定すると、最低1回実行されることのテストになります。
@Mock(maxInvocations = 1)と指定すると、最大1回実行されることのテストになります。なので1回も実行されてなくてもテストとしては正常となります。
KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^