什么是单元测试?

单元测试是指对软件中的最小可测单元在与其他程序其他部分相隔离的情况进行检查和验证的工作,这里的最小可测单元指的是类或者函数。单元测试一般是由开发工程师完成的。

  • 单元测试-是电视机的电子元件的测试
  • 集成测试-是对由电子元件组成的电路板的测试
  • 系统测试-组装成电视机后的开机测试

1.单元测试中常涉及驱动代码、桩代码和mock代码名词解释以及之间的关系

什么是单元测试?_第1张图片

驱动代码(driver):是指用来调用被测函数的代码

在单元测试的过程中,驱动代码通常包括调用被测函数前的数据准备、调用被测函数以及结果验证三个步骤。

桩代码(stub):用来替代真实代码的临时代码

函数A中包含了函数B,但是函数B暂未实现,为了测试函数A,则对需要模拟一个函数B以便进行A函数的测试,因此这个模拟函数B的代码称之为桩代码,模拟函数B称为桩函数。

mock代码:它和桩代码很类似,都是用替代真实代码的临时代码,起到对代码隔离和补齐的作用。

桩代码和mock代码很相似,但是他们的本质区别在于:测试期待结果的验证。mock代码主要关注mock方法有没有被调用,以什么样的形式被调用,调用的先后顺序,所以在使用mock代码的测试中,对于结果的验证,通常出现在mock函数中;桩代码关注的是利用stub来控制被测函数的执行路径,不会去关注stub是否被调用以及怎样被调用,所以对于结果的验证通常出现在驱动代码中。

2.单元测试的用例

它一般是一个“输入数据”和“预计输出”的集合。测试用例编写还是要依靠等价类划分、边界值分析和错误推测法三种常用方法进行编写,只有这样才能设计出比较完整的测试用例集。

输入数据:

  • 调用被测函数时传入的参数
  • 被测函数内部需要读取的全局静态变量
  • 被测函数内部需要读取的成员变量
  • 被测函数内部调用子函数获得的数据
  • 被测函数内部调用子函数改写的数据

  • 输出数据:
  • 被测函数的返回值
  • 被测函数的输出参数
  • 被测函数所改写的成员变量
  • 被测函数所改写的全局变量
  • 被测函数中对文件的更新、数据库更新、消息队列更新

3.单元测试的策略

并不是所有的代码都需要进行单元测试,通常只有底层模块或者核心模块的测试才会采用单元测试。

你可能感兴趣的:(笔记,单元测试)