6. spy

package lesson6;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.runners.MockitoJUnitRunner;
import java.util.ArrayList;
import java.util.List;
import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;

@RunWith(MockitoJUnitRunner.class)
public class _1_SpyingTest {
    @Test
    public void testSpy() {
        List<String> realList = new ArrayList<>();
        /**
         * spy过的对象都会调用真正的方法
         * 利用when-thenReturn来Mock不需要真正调用的方法
         */
        List<String> list = spy(realList);
        list.add("Mockito");
        list.add("Fuck");
        assertEquals(false, list.isEmpty());
        assertEquals("Mockito", list.get(0));
        assertEquals("Fuck", list.get(1));

        when(list.isEmpty()).thenReturn(true);
        assertEquals(true, list.isEmpty());
    }
}
package lesson6;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Spy;
import org.mockito.runners.MockitoJUnitRunner;
import java.util.ArrayList;
import java.util.List;
import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.when;

@RunWith(MockitoJUnitRunner.class)
public class _2_SpyingAnnotationTest {

    @Spy
    List<String> list = new ArrayList<>();

    @Test
    public void testSpy() {
        list.add("Mockito");
        list.add("Fuck");
        assertEquals(false, list.isEmpty());
        assertEquals("Mockito", list.get(0));
        assertEquals("Fuck", list.get(1));

        when(list.isEmpty()).thenReturn(true);
        assertEquals(true, list.isEmpty());
    }
}

 

posted @ 2020-11-23 16:09  氯雷他定  阅读(84)  评论(0编辑  收藏  举报