SoftwareEngineering/Java/UnitTest
package org.codereign.mockito.tutorial.tutorial04;
import static org.mockito.Mockito.*;
import java.util.List;
import org.junit.Test;
/**
* 呼び出し回数を検証します。
*/
public class Tutorial04Test {
@SuppressWarnings({ "unchecked", "rawtypes" })
@Test
public void test() {
// ---------------------------------------------------------
// Arrange
// ---------------------------------------------------------
List mockedList = mock(List.class);
// ---------------------------------------------------------
// Act
// ---------------------------------------------------------
mockedList.add("once");
mockedList.add("twice");
mockedList.add("twice");
mockedList.add("three times");
mockedList.add("three times");
mockedList.add("three times");
// ---------------------------------------------------------
// Assert
// ....呼び出し回数が想定していた回数と一致しているか検証する
// ---------------------------------------------------------
verify(mockedList, times(0)).add("never happened");
verify(mockedList, times(1)).add("once");
verify(mockedList, times(2)).add("twice");
verify(mockedList, times(3)).add("three times");
// ---------------------------------------------------------
// ....呼び出し回数が想定していた回数以下であるか検証する
// ---------------------------------------------------------
verify(mockedList, atMost(0)).add("never happened");
verify(mockedList, atMost(1)).add("never happened");
verify(mockedList, atMost(1)).add("once");
verify(mockedList, atMost(2)).add("never happened");
verify(mockedList, atMost(2)).add("once");
verify(mockedList, atMost(2)).add("twice");
verify(mockedList, atMost(3)).add("never happened");
verify(mockedList, atMost(3)).add("once");
verify(mockedList, atMost(3)).add("twice");
verify(mockedList, atMost(3)).add("three times");
// ---------------------------------------------------------
// ....呼び出し回数が想定していた回数以上であるか検証する
// ---------------------------------------------------------
verify(mockedList, atLeast(0)).add("never happened");
verify(mockedList, atLeast(0)).add("once");
verify(mockedList, atLeast(0)).add("twice");
verify(mockedList, atLeast(0)).add("three times");
verify(mockedList, atLeast(1)).add("once");
verify(mockedList, atLeast(1)).add("twice");
verify(mockedList, atLeast(1)).add("three times");
verify(mockedList, atLeast(2)).add("twice");
verify(mockedList, atLeast(2)).add("three times");
verify(mockedList, atLeast(3)).add("three times");
}
}