15. BddStyle: given-willReturn、OneLiner风格
package lesson15; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; import java.util.List; import static org.hamcrest.CoreMatchers.equalTo; import static org.junit.Assert.assertThat; import static org.mockito.BDDMockito.given; import static org.mockito.Matchers.anyInt; @RunWith(MockitoJUnitRunner.class) public class BddStyleTest { @Mock private List<String> list; @Test public void test() { given(list.get(anyInt())).willReturn("xxx"); assertThat(list.get(1), equalTo("xxx")); } }
package lesson15; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.runners.MockitoJUnitRunner; import java.util.Map; import static org.hamcrest.CoreMatchers.equalTo; import static org.junit.Assert.assertThat; import static org.mockito.Matchers.any; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @RunWith(MockitoJUnitRunner.class) public class OneLinerStubbingTest { @Test public void testNormal() { Map<String, String> map = mock(Map.class); when(map.get(any())).thenReturn("x1", "x2"); assertThat(map.get("1"), equalTo("x1")); assertThat(map.get("1"), equalTo("x2")); assertThat(map.get("1"), equalTo("x2")); } @Test public void testOneLiner() { Map<String, String> map = when(mock(Map.class).get(any())).thenReturn("x1", "x2").getMock(); assertThat(map.get("1"), equalTo("x1")); assertThat(map.get("1"), equalTo("x2")); assertThat(map.get("1"), equalTo("x2")); } }