MockDemoApplicationTests.java 1.43 KB
package com.mock.example.mockdemo;

import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.mockito.Mockito;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.stereotype.Component;
import org.springframework.test.context.junit4.SpringRunner;

import java.util.List;

@RunWith(SpringRunner.class)
@SpringBootTest
class MockDemoApplicationTests {

    @MockBean
    TestBean testBean;

    @Test
    public void test() {
        Mockito.when(testBean.sayHello()).thenReturn(1);
        System.out.println(testBean.sayHello());
    }

    @Test
    public void testVerify() throws Exception {
        //创建 mock 对象
        List mockedList = Mockito.mock(List.class);
        mockedList.add("test1");
        mockedList.add("test2");
        mockedList.add("test2");
        mockedList.clear();
        //验证是否执行了一次 add("test1") 操作
        Mockito.verify(mockedList).add("test1");
        //同上面验证是否执行了一次 add("test1") 操作,默认就是 time(1)
        Mockito.verify(mockedList, Mockito.times(1)).add("test1");
        //验证是否执行了3次 add("test2") 操作
        //verify(mockedList, times(3)).add("test2");
        Mockito.verify(mockedList).clear();
    }
}

@Component
class TestBean {
    public int sayHello(){
        System.out.println("hello world");
        return 0;
    }
}