贾鸿硕的博客

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

1.1 逐步定义单元测试

维基百科对于单元测试的传统定义:

定义1.0:一个单元测试是一段代码(通常是一个方法),这段代码调用另一段代码,然后检验某些假设的正确性。如果这些假设是错误的,单元测试就失败了。一个单元可以是一个方法或函数。

被测试系统(System Under Test, SUT):写代码测试的对象

作者观点:单元代表系统中的功能单元或者一个用例。既可以小到只包含一个方法,也可以大到包括实现某个功能的多个类和函数。

定义1.1:一个单元测试是一段代码,这段代码调用一个工作单元,并检验一个工作单元的一个具体的最终结果。如果关于这个最终结果的假设是错误的,单元测试就失败了。一个单元测试的范围可以小到一个方法,大到多个类。

1.2 优秀单元测试的特性

  • 用自动化测试框架编写
  • 容易编写
  • 运行快速

1.3 集成测试

定义:集成测试是对一个工作单元进行的测试,这个测试对被测试的工作单元没有完全的控制,并使用该单元的一个或多个真实依赖物,例如时间、网络、数据库、线程或随机数产生器等。

对比:

  • 集成测试使用真实依赖物
  • 单元测试将测试单元与其他依赖物隔离开,保证单元测试结果高度稳定

非自动化集成测试的缺点:

  • 结果不稳定,无法保证长时间以后再次执行仍然能得到结果,可能破坏了功能而毫不知情

定义:遗留代码在维基百科中定义为“与一个不再受支持或继续生产的操作系统,或其他计算机技术相关的源代码”,但是很多公司把任何比当前维护的应用更老旧的版本都称为遗留代码。这个词经常用来指代那些难以使用,难以测试,通常也更难以阅读的代码。

1.4 什么是优秀的单元测试

单元测试定义更新:

定义最终更新1.2: 一个单元测试是一段自动化的代码,这段代码调用被测试的工作单元,之后对这个单元的单个最终结果的某些假设进行检验。单元测试几乎都是用单元测试框架编写的。单元测试容易编写,能快速运行。单元测试可靠、可读,并且可维护。只要产品代码不发生变化,单元测试的结果是稳定的。

1.5 范例

1.6 测试驱动开发

Test-Driven Development, TDD:测试驱动开发

流程:

  1. 编写一个会失败的测试,以证明产品中代码或功能的缺失
  2. 编写符合测试预期的产品代码,使测试通过
  3. 重构代码:编写下一个单元测试、进行重构等
posted on 2023-06-08 16:28  jhsss  阅读(12)  评论(0编辑  收藏  举报