博客
关于我
单元测试的驱动程序和桩程序
阅读量:108 次
发布时间:2019-02-26

本文共 1230 字,大约阅读时间需要 4 分钟。

概念

驱动程序(Driver)和桩程序(Stub)是软件开发中常用的测试辅助工具,它们各有不同的作用和应用场景。

驱动程序(Driver)

驱动程序可以称作驱动模块,是用来模拟被测模块的上级模块,能够调用被测模块。在测试过程中,驱动模块接收测试数据,调用被测模块并把相关的数据传送给被测模块。简单来说,驱动测试就是解决被测模块缺少main()方法入口的问题,通过编写一个带main()的驱动程序来调用被测模块或其方法。

桩程序(Stub)

桩程序是用来模拟被测模块工作过程中所调用的下层模块。桩模块由被测模块调用,它们通常只进行简单的数据处理。打桩的含义是编写或生成桩代码。桩的作用是用代替原函数B,B1就是桩函数。当函数B用B1代替时,B称为原函数,B1称为桩函数。打桩的目的是为了隔离、补齐或控制。

打桩的目的

打桩的主要目的是为了实现以下三方面的需求:

  • 隔离

    将测试任务从产品项目中分离出来,使其能够独立编译、链接并运行。通过打桩,可以将测试任务之外的相关代码替换为桩,从而实现对测试任务的隔离。例如,函数A调用了函数B,而函数B又调用了函数C和D。如果用桩来代替函数B,那么函数A就可以完全脱离与函数C和D的关联。

  • 补齐

    用桩来代替未实现的代码。例如,函数A调用了函数B,而函数B尚未由其他程序员实现。可以通过打桩来代替函数B,使得函数A能够运行并进行测试。这种方法在并行开发中非常常用。

  • 控制

    在测试时,人为设定相关代码的行为,使其符合测试需求。通过控制桩的行为,可以在测试过程中对代码的执行流程进行人为干预,从而更好地满足测试需求。

  • 代码示例

    以下是一个简单的驱动测试示例:

    public static void main(String[] args) {    Attendance a = new Attendance();    a.query();}public void query() {    int value = this.Stub1() + this.Stub2();    System.out.println("我方法的值是:" + value);}public int Stub1() {    int output = 3;    System.out.println("my stub的值是" + output);    return output;}public int Stub2() {    int output = 4;    System.out.println("my stub的值是" + output);    return output;}

    在这个示例中,Attendance类的 query() 方法调用了两个桩方法 Stub1()Stub2(),并将它们的返回值相加并输出结果。Stub1()Stub2() 是简单的桩程序,它们分别返回固定的值3和4,并在控制台打印相应的日志信息。

    转载地址:http://lheu.baihongyu.com/

    你可能感兴趣的文章
    OSI七层模型的TCP/IP模型都有哪几层和他们的对应关系?
    查看>>
    OSM数据如何下载使用(地图数据篇.11)
    查看>>
    OSPF 四种设备角色:IR、ABR、BR、ASBR
    查看>>
    OSPF 概念型问题
    查看>>
    SQL Server 存储过程分页。
    查看>>
    OSPF不能发现其他区域路由时,该怎么办?
    查看>>
    OSPF两个版本:OSPFv3与OSPFv2到底有啥区别?
    查看>>
    SQL Server 存储过程
    查看>>
    OSPF在大型网络中的应用:高效路由与可扩展性
    查看>>
    OSPF技术入门(第三十四课)
    查看>>
    OSPF技术连载10:OSPF 缺省路由
    查看>>
    OSPF技术连载13:OSPF Hello 间隔和 Dead 间隔
    查看>>
    OSPF技术连载14:OSPF路由器唯一标识符——Router ID
    查看>>
    OSPF技术连载15:OSPF 数据包的类型、格式和邻居发现的过程
    查看>>
    OSPF技术连载16:DR和BDR选举机制,一篇文章搞定!
    查看>>
    OSPF技术连载17:优化OSPF网络性能利器——被动接口!
    查看>>
    OSPF技术连载18:OSPF网络类型:非广播、广播、点对多点、点对多点非广播、点对点
    查看>>
    OSPF技术连载19:深入解析OSPF特殊区域
    查看>>
    SQL Server 复制 订阅与发布
    查看>>
    OSPF技术连载20:OSPF 十大LSA类型,太详细了!
    查看>>