1、什么是单元测试:

  个人理解是:通过代码校验功能是否正常的测试。

2、为什么需要单元测试:

  • 正确性,测试可保证代码正确性;
  • 解释性,有时读取测试用例更易于理解业务流程;
  • 自动化,编写一次,多次运行;
  • 驱动开发,指导设计:代码被测试的前提是具有可测试性,要具备可测试性,则需要注意api的设计,tdd测试思想将测试前移就是这个道理;
  • 保证重构,测试用例可以帮助理清代码的业务逻辑;

3、单元测试实现原理:

  • 测试框架,判断内部是否存在异常,存在则console对应的text信息;
  • 断言库,当actual值与expect值不一致时,抛出异常给外部测试框架处理;
  • mock函数,创建新函数,用新函数取代原函数,并添加新特性(例如called、calledWithArguments等信息);

4、如何编写测试用例:(jest为例)

  写用例之前,需要了解一些jest的基础知识(传送门)。

  语法:

describe("string", () => {it("string", () => {expect(2+2).toBe(4);})
})

转载于:https://www.cnblogs.com/geewonii/p/8377844.html

单元测试篇---风起长林相关推荐

  1. 持续集成之单元测试篇——WWH(讲讲我们做单元测试的故事)

    持续集成之单元测试篇--WWH(讲讲我们做单元测试的故事) 前言 临近上线的几天内非重大bug不敢进行发版修复,担心引起其它问题(摁下葫芦浮起瓢) 尽管我们如此小心,仍不能避免修改一些bug而引起更多 ...

  2. 算法复习——动态规划篇之最长公共子序列问题

    算法复习--动态规划篇之最长公共子序列问题 以下内容主要参考中国大学MOOC<算法设计与分析>,墙裂推荐希望入门算法的童鞋学习! 1. 问题背景 子序列:将给定序列中零个或多个元素(如字符 ...

  3. 一篇好TM长的关于配置中心的文章

    配置 (Configuration) 配置(Configuration) 这个概念每个技术人都不陌生,可以说一个不提供几个配置参数的系统都不好意思上线跟别的系统打招呼.那么为什么会是这个样子呢,究其本 ...

  4. ios http长连接_Nginx篇05——http长连接和keeplive

    nginx中http模块使用http长连接的相关配置(主要是keepalive指令)和http长连接的原理解释. 1.http长连接 1.1 预备知识 连接管理是一个 HTTP 的关键话题:打开和保持 ...

  5. 测试专员如何编写优秀的测试代码·单元测试篇

    无论如何组织测试,无论有多少测试,如果你不能信任.维护以及阅读它们,这些测试就几乎没有价值.要成为优秀的测试,它们应该同时具有如下三个属性. 可靠性:开发人员希望运行的测试可靠,能够对测试结果有信心. ...

  6. 【高并发内存池】第一篇:定长内存池设计

    文章目录 一. 什么是内存池? 1. 池化技术 2. 内存池概念 二. 为什么要有内存池? 1. 内存碎片问题 2. 内存池带来的好处 三. 定长内存池设计 1. 定长内存池特点 2. 定长内存池基本 ...

  7. 从0-1搭建交付型项目管理体系流程-- 项目启动篇【宝芝林5】

    一. 目标及作用 本阶段主要的目标是签订合同及SOW工作说明书,其里程碑事件为甲乙双方完成合同及SOW工作说明书签字及盖章,以及召开项目启动会. 主要作用是明确项目甲乙双方的权利和义务,以及与甲方及其 ...

  8. java junit 覆盖率_java单元测试篇:使用clover为junit单元测试做覆盖率分析(二)...

    51Testing软件测试网 Ri;yBnkQ!z^ 之后,我们创建一个junit测试代码MoneyTest.java,来测试Money.java和MoneyBag.java类,这里我也把它放在src ...

  9. R 数据分析方法(梅长林)exercise1-3

    首先安装几个R数据分析的包 funModeling:探索性数据分析(EDA).数据准备和模型性能评估 tidyverse:数据科学集成包 Hmisc:高级计算函数.绘图功能等 matrixStats: ...

最新文章

  1. 1090 Highest Price in Supply Chain 需再做
  2. bzoj4385 POJ2015 Wilcze doły
  3. 五天带你学完《计算机网络》·第二天·数据链路层
  4. 表单验证的完美解决方案Validform
  5. 反射获取成员方法并运行
  6. Linux下test命令使用
  7. 杭电1874畅通工程续
  8. Mysql中导入和导出数据库
  9. 机器学习系列(19)_通用机器学习流程与问题解决架构模板
  10. Aerospike SSD模式下写入swb内的记录格式
  11. LSD-slam算法原理
  12. 计算机与算盘有什么区别
  13. android otg读写文件,Android USB Host在USB设备OTG中读/写文件
  14. HTML5触摸事件(多点、单点触控)
  15. 书论52 姜夔《续书谱》
  16. 搭建私服环境及私服的使用-将第三方jar上传私服
  17. python元祖_python元祖基本操作
  18. element的el-table列标题添加自定义图标
  19. “双减”下 K12 教育集体折戟,AI 会是教培行业力挽狂澜的稻草吗?
  20. 防范客户流失的主要措施有哪些?

热门文章

  1. Java基础:Java程序设计环境
  2. gimp基本操作和抠图操作视频教程
  3. python 解析jsp_JSP语法详解二 - 博学之,审问之,慎思之,明辨之,笃行之 - ITeye博客...
  4. 【MAC使用技巧】打不开xxx.pkg,因为它来自身份不明的开发者
  5. 资本频频下注,为什么是江小白?
  6. vb.net 教程 12-4 msHtml 1
  7. 数模美赛论文模板(笔记)
  8. FastAdmin 系统配置的使用
  9. Golang实现经典算法
  10. ubuntu 18.04安装adb和fastboot调试工具