• mock测试到底是什么?


        ​    ​经常听人说mock测试,究竟什么是mock测试呢?mock测试能解决什么问题?mock测试要如何做呢?今天为大家做简单介绍,之后会有详细的mock测试,感谢大家对测试梦工厂的持续关注。

    概念

        ​    ​mock测试就是在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法。

    MockObject

        ​    ​使用Mock Object进行测试,主要是用来模拟那些在应用中不容易构造(如HttpServletRequest必须在Servlet容器中才能构造出来)或者比较复杂的对象(如JDBC中的ResultSet对象)从而使测试顺利进行的工具。

        ​    ​目前,在Java阵营中主要的Mock测试工具有JMock,MockCreator,Mockrunner,EasyMock,MockMaker等,在微软的.Net阵营中主要是Nmock,.NetMock等。

    mock对象实例

    编辑

        ​    ​一个闹钟根据时间来进行提醒服务,如果过了下午5点钟就播放音频文件提醒大家下班了,如果我们要利用真实的对象来测试的话就只能苦苦等到下午五点,然后把耳朵放在音箱旁,我们应该利用mock对象[1]  来进行测试,这样我们就可以模拟控制时间了,而不用苦苦等待时钟转到下午5点钟了。下面是代码:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    public abstract class Environmental{
        boolean playedWav=false;
        public abstract  long getTime();
        public abstract  void  playWavFile(String fileName);
        public abstract  boolean  wavWasPlayed();
        public abstract  void  resetWav();
    }
     
    真实的实现代码:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    public class SystemEnvironment extends Environmental{
        public long getTime(){
            return System.currentTimeMillis();
        }
        public void playWavFile(String  fileName){
            playedWav=true;
        }
        public boolean  wavWasPlayed(){
            return playedWav;
        }
        public void  resetWav(){
            playedWav=false;
        }
    }
     
    下面是mock对象:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    public class MockSystemEnvironment extends Environmental{
        private long currentTime;
        public long getTime(){
            return currentTime;
        }
        public voidsetTime(long  currentTime){
            this.currentTime=currentTime;
        }
        public void playWavFile(String  fileName){
            playedWav=true;
        }
        public boolean wavWasPlayed(){
            return playedWav;
        }
        public void  resetWav(){
            playedWav=false;
        }
    }

            长按二维码识别关注,您的支持是我们最大的动力。       

            公众号:测试梦工厂

            QQ一群:300897805

      

  • 相关阅读:
    Git使用入门
    Android系统移植和驱动开发
    搭建Android开发环境
    Android源代码的下载和编译
    Andriod深度探索(卷1)HAL与驱动开发 第十章读书心得
    Andriod深度探索(卷1)HAL与驱动开发 第九章读书心得
    Andriod深度探索(卷1)HAL与驱动开发 第八章读书心得
    Android深度探索(卷1)HAL与驱动开发 第七章读书心得
    Android深度探索(卷1)HAL与驱动开发 第六章读书心得
    Android深度探索(卷1)HAL与驱动开发 第五章读书心得
  • 原文地址:https://www.cnblogs.com/testdream/p/6234828.html
Copyright © 2020-2023  润新知