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"));
    }
}
原文地址:https://www.cnblogs.com/yfzhou528/p/14025677.html