如何理解单元测试?它与集成测试的区别?

目录

一、如何定义单元测试?

二、优秀单元测试的特点

三、 单元测试与集成测试的区别


一、如何定义单元测试?

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

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

二、优秀单元测试的特点

1、任何人能一键自动化的重复执行;
2、它很容易实现且“第二天”还有意义;
3、运行速度很快且结果稳定;
4、完全隔离,即独立于其他测试的运行;
5、如果它失败,很快能定位到问题所在; 

三、 单元测试与集成测试的区别

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

如果一次测试的东西太多,运行速度不够快,需要配置,结果不稳定,或者要用到被测试单元的一个和多个真实依赖物,这次测试可以认为是集成测试。例如1:一个测试不能控制系统时间,在代码中使用当前时间DateTime.Now,那每次测试执行使用的都是不同的时间,每次测试本质上是不同的,那这个测试就不稳定。这样的测试已经进入集成测试的范畴。例如2:一个测试使用了真实的数据库,那么和那些只使用了内存中的伪数据的测试相比,这种测试的痕迹更难消除,测试运行时间会更长。这样的测试也属于集成测试的范畴。

总的来说,集成测试和单元测试具有同等重要的地位,但是这两种测试应该彼此分开。集成测试会使用真实依赖物,而单元测试则把被测单元和其依赖物隔离开,以保证单元测试结果高度稳定,还可以轻易控制和模拟被测试单元行为的任何方面。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

魏波.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值