1.单侧基础

本章包含:

  • 定义进入和退出的点
  • 定义一个工作单元和单元测试
  • 比较单元测试和集成测试
  • 探索一个简单的单元测试案例
  • 理解TDD
  • List item

1.1单测概念

本章首先分析单元测试的经典定义,并在概念上与集成测试比较。这种区别让人感到困惑,但它非常重要,因为我们在后面将要学到,在测试失败或通过时,将单元测试和其他类型的测试分离开,这对于树立信心是很重要的。我们还会讨论单元测试的优缺点,并对什么是好的单侧给出一个更好的定义。最后我们会看一下测试驱动开发TDD,因为它通常与单测联系在一起。

单测并不是软件开发中的新概念。早在十九世纪70年代,Smalltalk编程语言中就出现了单测,单测是提高开发质量的最好的方式。

Kent Beck在Smalltalk中引入了单测的概念,同时被引入到其他的很多编程语言中,使得单测变成了软件编程中非常有用的实践。

要了解我们不想使用什么作为单元测试的定义,我们先看看Wikipedia。

DEFINITION1.O(WIKIPEDIA)
单元测试通常是由软件开发人员编写和运行的自动化测试,以确保应用程序的一部分(称为单元)符合其设计,并且按照预期运行。在过程式编程中,一个单元可以是一个完整的模块,但是它通常是一个函数或过程。在面向对象的编程中,一个单元经常是一个完整的接口,比如一个类,也可以是一个单独的方法。

写代码的对象叫SUT

SUT代表被测试的主题、系统或套件,有些人喜欢叫CUT(被测试的组件、模块或类或者代码)。当你测试某样东西时,你把你正在测试的东西称为SUT。

先讨论下单元测试中的单元,单元代表系统中的一个工作单元或者一个用例。一个工作单元有对应的开始和结束。称它为entry points和exit points。一个简单的工作单元,就像我们马上将看到的那样,是一个函数,它将计算一些东西并返回一个值。但是这个函数可以引用其他的函数,其他的模型和其他的组件在计算过程中,即工作单元(从开始端点到结束端点)。现在的范围不仅仅是一个函数。

工作单元的定义:
一个工作单元是一系列行为的总和,即从entry point被调用到有一个明显的结果来结束通过一个或多个exit points这个过程中发生的所有行为。
给定一个公开可见的函数,例如:
函数体是一个工作单元,或一个工作单元的一部分。
函数的声明和签名是进入函数体的entry point。
函数的结果输出或行为就是它的exit point。

1.2 Entry Points & Exit Points

一个工作单元经常是有一个entry point 和 一个或多个的 exit points.
图1.1展示了一个关于工作单元的图
在这里插入图片描述
工作单元可以是单个函数,多个函数,多个函数甚至多个模块和多个组件。但是它总是有一个entry point,我们可以从外部触发(可以通过测试或者产品代码触发),它总是做一些有用的事情才结束。如果它不做任何有用的事情,我们会从代码库中删除它。
什么是有用的事情?返回一个值,或者改变状态,或者调用外部服务。这些明显的行为就是exit points。
在这里插入图片描述
为什么叫exit point而不是 behavior。行为可以是纯粹内在的,我们正在寻找来自调用者的外部可见的行为。这个区别在现实编码中很难区分。此外,exit point 有一个好的内涵,它表明我们正在离开工作单元的上下文,并回到测试上下文。行为可能更灵活一些。
下面的代码展示了一个简单的工作单元:

在这里插入代码片
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值