专栏首页jerryteng的专栏如何编写好的单元测试
原创

如何编写好的单元测试

v2-a3366dd5b1aadc7ee4cd6cd85895deb2_hd.jpg

单元测试的概念

单元测试,首先要明确这个单元,从一个单一方法到整个类都可以是一个单元,单元测试就是针对这个单元所写的测试用例。

我们常看到测试同学提到的 单元测试、增量测试、集成测试、回归测试、冒烟测试 。

Google对测试有了新的划分方式:小型测试、中型测试和大型测试。

我们所说的单元测试 基本就是小型测试。

好的单元测试的特点:正确、清晰、完整、健壮

好的单元测试,测试的是 what ,而不是 how

为什么要做单测

  • 对产品质量非常重要
  • 是唯一一次保证代码覆盖率达到100%的测试
  • 修正一个软件错误所需的费用将随着软件生命期的进展而上升
  • 代码规范、优化,可测试性的代码
  • 放心重构
  • 自动化执行,多次执行

编写测试

编写好的测试用例要求

  • case名称明确
  • case设计中要考虑边界
  • 好的单元测试完备⽽不重复
  • 设计case,是基于意图的设计,而不是基于实现
  • 善用setup,将通用的初始化进行整理
  • 要明确测试意图,尤其对最可能出错、最有风险、逻辑最重、计算的地方进行用例覆盖
  • 把被测函数分为几部分逻辑,针对每一块设计case
  • 需要mock的,是调用外部资源、请求、数据的,或者较难实现的错误场景等。
  • 对bug要分析,要写单测覆盖它
  • 不会出错的,set/get,一句if的,内联的,逻辑很简单的,不用写单测

总纲

单元测试.png

这里原图可能看不清楚,我上传网盘吧。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • js播放音频文件总结

    最近在做一个英语听力的个人玩的项目,需要用js来播放mp3文件。从网络上搜到了好多种解决方案。

    jerryteng
  • 从代码层面解决chrome不支持flash的方案

    现在 Google 也推出了 Swiffy,免费把 SWF 格式转换为 HTML5 代码。

    jerryteng
  • php根据经纬度计算距离和方向

    不过现在有了更多的可选项了,例如geohash,存储geo的服务,mogodb,等等

    jerryteng
  • 编写更好的 Java 单元测试的 7 个技巧

    测试是开发的一个非常重要的方面,可以在很大程度上决定一个应用程序的命运。良好的测试可以在早期捕获导致应用程序崩溃的问题,但较差的测试往往总是导致故障和停机。

    哲洛不闹
  • 与我一起学习微服务架构设计模式9—测试策略(上)

    使用微服务的一个关键动机是提高可测试性,微服务架构的复杂性要求编写自动化测试,以缩短交付(代码投入生产环境)周期。

    java达人
  • 软件测试的7个基本原则

    软件测试的原则是指帮助测试团队有效地利用他们的时间和精力来发现测试项目的隐藏bug的指导方针。从实际的实践和研究中,研究了以下 7 条软件测试的基本原则,以便测...

    软测小生
  • python接口自动化(五)--接口测试用例和接口测试报告模板(详解)

      当今社会在测试领域,接口测试已经越来越多的被提及,被重视,而且现在好多招聘信息要对接口测试提出要求。区别于传统意义上的系统级别测试,很多测试人员在接触到接口...

    北京-宏哥
  • 嵌入式软件单元测试/集成测试工具-WINAMS

    [Coverage master winAMS]是以嵌入式软件的函数为单位,实施模块单元测试以及C0/C1/MCDC覆盖率测试(coverage test)的嵌...

    用户4841250
  • 集成测试、单元测试、系统测试

    为了使软件正常工作,所有单元都应集成在一起并正常运行。集成测试就像是要求不同工种的工人修建一个房子,希望他们都团结协作。如何判断他们在一起是否可以按照计划完成建...

    八音弦
  • 一枚程序员眼中的单元测试

    如今程序员群体赶上了中国最庞大的农民群体,大街上随便抓一把,十有八九是程序员,还一个刚从某国企离职报名参加软件培训班。我想码农的称号或许就是这么来的吧。

    袁慎建@ThoughtWorks

扫码关注云+社区

领取腾讯云代金券