• JAVA的mock工具mockito简介


    在测试过程中,难免会碰到交互的外围系统不给力的情况,这时候mock就派上用场了,前段时间跟同学聊到这块的时候,他向我推荐mockito这个mock工具,试用了一下,确实很好用,这里给大家介绍下这款工具:

    1、mockito的特点

    • 它既能mock接口也能mock实体类(咱测试框架mock工具也能做到)
    • 简单的注解语法-@Mock
    • 简单易懂,语法简单
    • 支持顺序验证
    • 客户化参数匹配器

    2、mockito的配置

    只需依赖jar包即可:

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

    2、mockito的用法

    注解的方式:

    只需在要mock的对象上添加@Mock即可,如:

    public class ArticleManagerTest {

    @Mock private ArticleCalculator calculator;
    @Mock private ArticleDatabase database;
    @Mock private UserProvider userProvider;

    private ArticleManager manager;

    不使用注解:
    //要mock的实体类
    LinkedList mockedList = mock(LinkedList.class);
    //模拟方法调用的返回值
    Mockito.when(mockedList.get(0)).toReturn("first");
    Mockito.when(mockedList.get(1)).toThrow(new RuntimeException());
    //打印出"first"
    System.out.println(mockedList.get(0));
    //抛出异常
    System.out.println(mockedList.get(1));
    //返回null,因为还没有对返回值做模拟
    System.out.println(mockedList.get(999));
    3、参数匹配器
    //使用anyInt()来匹配任意int型参数
    Mockito.when(mockedList.get(anyInt())).toReturn("element");
    
    //可以使用自己定义的匹配器 (isValid()是自定义的参数匹配器):
    Mockito.when(mockedList.contains(argThat(IsValid()))).toReturn("element");

    public class IsValid extends ArgumentMatcher<Object> {

    @Override
    public boolean matches(Object argument) {
    if (argument instanceof String) {
    return true;
    } return false;
    }
    }

  • 相关阅读:
    二进制&bitset(未完成)
    Python接口测试课程(第四天)-接口测试框架实现
    Python接口测试课程(第三天)-接口安全验证,参数化及断言
    Python接口测试课程(第二天)-接口测试快速实践
    {title}
    Python自动化测试面试题-接口篇
    Python自动化测试面试题-Selenium篇
    unittest使用signal信号量
    Selenium使用ChromeOptions启动参数
    Selenium执行Javascript脚本使用参数和返回值
  • 原文地址:https://www.cnblogs.com/s1328/p/4884779.html
Copyright © 2020-2023  润新知