zoukankan      html  css  js  c++  java
  • 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;
    }
    }

  • 相关阅读:
    ie8 不能加载dll的问题解决
    Delphi 释放数组中的数据
    CSS: 首字母字体变大时下划线不对齐的解决方法
    谈谈一些有趣的CSS题目(十三)-- 巧妙地制作背景色渐变动画!
    吃透css3之3d属性--perspective和transform
    vue-cli中的webpack配置
    转载 webstrom识别 React语法
    CSS 布局整理(************************************************)
    巧用chrome开发者工具
    详解Webpack2的那些路径
  • 原文地址:https://www.cnblogs.com/s1328/p/4884779.html
Copyright © 2011-2022 走看看