Mock的基本概念和方法

本博客(http://blog.csdn.net/livelylittlefish )贴出作者(三二一@小鱼)相关研究、学习内容所做的笔记,欢迎广大朋友指正!

Content

0. 序言

1. 本文议题

2. 应该做什么?

3. 如何做?

3.1 方案一

(1) 建立模拟文件

(2) 修改业务逻辑中的调用

(3) 修改make文件

(4) 讨论

3.2 方案二

(1) 建立模拟文件

(2) 基本思想

(3) 修改make文件

(4) 讨论

(5) 该方案的变种

4. 小结

 

0. 序言

 

在软件开发中,我们不可避免的要调用一些外部或者系统级别的接口,然而,我们在测试时,也许这些接口或环境并不存在。比如在对我们自己的模块做单元测试时,发现自己的模块依赖的别的模块或接口还没有建立好,如何测试?

 

Mock概念应运而生,最开始在Java领域,后来各种语言或开发领域均引入该概念。

 

Mock实际上就是一种模拟和控制外部或者系统级别对象或接口的方法。因此,我们在做测试时,尤其是单元测试或覆盖测试时,不必与真实环境交互即可完成对自己的模块业务逻辑的测试,或许自己的模块需要依赖外部环境。

 

因此,我们可以总结

Mock的本质是:模拟(mock)你的(代码),来测我的(代码)

在这里,别人的(代码),或者与硬件相关的(代码),或者暂时未完成的(代码),统称为你的(代码)

 

关于单元测试,各种软件工程书籍,http://en.wikipedia.org/wiki/Unit_testing,及其链接有较详细的解释。

关于Mock对象,可参考《测试驱动开发-Test-Driven Development》第7笔记http://www.mockobjects.comhttp://en.wikipedia.org/wiki/Mock_object,等有较详细的解释。

 

1. 本文议题

 

在本文中,笔者将以文件操作为例,讲述基本的mock概念和方法。本例中,你的代码your_file.h/.c如下。

/*

 * your_file.h

 */

#ifndef _YOUR_FILE_H_

#define _YOUR_FILE_H_

 

#include

 

FILE* your_file_open(char *fname);

void your_file_close(FILE* fp);

 

#endif

Your_file.c是你的代码本来应该有的功能,如打开和关闭文件。

/*

 * your_file.c

 */

#include "your_file.h"

 

FILE* your_file_open(char *fname)

{

    FILE *fp = NULL;

 

    fp = fopen(fname, "r");

    if (fp == NULL)

    {

        printf("Fail to open file!/n");

        return 0;

    }

 

    printf("Succeed!/n");

    return fp;

}

 

void your_file_close(FILE* fp)

{

    fclose(fp);

}

首先,做如下假设:

(1) 由于某种原因,这个.c文件(your_file.c)还有问题;

(2) 或者,这个

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值