本地测试神器-mockito

前言

我们在写自己的单测时,通常写法都是
main方法或者SpringBootTest + junit
在这里插入图片描述

但是这两种写法都有问题
1、main方法,无法进行bean注入,只能进行简单的逻辑测试
2、springbootTest + junit 可以实现bean注入,但是每次测试都需要启动服务,且如果本地环境无法连接数据库,代码中走到DAO层会报错

解决方案 Mockito

当我们不想每次测试都启动服务,但是代码中又有一些数据库操作,或者其他RPC调用,想跳过这些,直接测后边的代码

pom

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.9</version>
            <scope>test</scope>
        </dependency>


        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-all</artifactId>
            <version>2.0.2-beta</version>
            <scope>test</scope>
        </dependency>

代码

@RunWith(MockitoJUnitRunner.class)
public class IDemoJUnitTest {

    @InjectMocks
    DemoImpl demo;
    @Mock
    TestBeanPostProcessor testBeanPostProcessor;
    @Mock
    private OrderMapper mapper;

    @Test
    public void test() {
        Mockito.when(testBeanPostProcessor.getName(ArgumentMatchers.anyInt())).thenReturn("李四");
                Mockito.when(mapper.selectByOrderUid(Matchers.anyString(),Matchers.anyLong())).thenReturn(null);

        System.out.println(demo.testDemo(123));
    }
}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/lbh199466/article/details/106811604