初涉单元测试

什么是单元测试?

对软件中的最小可测试单元进行测试
对组成项目的方法进行一个一个测试
组成软件功能和系统的方法是否达到预期目标。

为什么要用单元测试
  1. 分模块开发,方便的定位到哪个单元出了问题。(单个模块,单个处理,对每一个模块都进行测试)
  2. 保证了代码质量 (减少问题发生的概率)
  3. 驱动开发(测试先行)
单元测试的两种类型

1:TDD
测试驱动开发,从需求角度看。 即我需要的结果是什么,如果不是就是错误的。

执行步骤:
需求分析> 编写单元测试>编写代码使单元测试通过 > 重构

2: BDD
行为驱动开发,从具体功能角度出发。即看结果是什么,如果不是什么就是出错

执行步骤:
从业务角度定义目标> 找到实现目标到的方式> 编写单元测试> 实现行为> 检查产品

测试原则
  1. 及时修改和维护(随着需求和业务的变动而改变测试代码)
  2. Code Review (审查代码是否实现所预期,逻辑是否正确。代码是否简单易懂。是否符合团队规范。)(Code Review延伸:同步code review: 即写完代码后立即进行代码审查; 异步code review: 借助工具进行代码审查; 偶尔code review: 会议式的代码审查)
  3. 只测单一的点(例如屏蔽掉一个方法中的其他方法的调用)
  4. 尽量贴近真实
  5. 避免测试中逻辑过于复杂
单元测试的核心内容
  1. 测试框架 (运行执行方法)
  2. 断言库(查看检查结果)
  3. Mock库(屏蔽外部依赖)
  4. Test runner
  5. 覆盖率工具(测试代码覆盖了多少行,多少方法,)
常见的测试框架
  1. Jest——基于jasmine, 自带assert和mock,对react友好。(全部集成)
  2. Jasmine——bdd风格,自带assert和mock
  3. Mocha——全面适合node和浏览器两个端(不带断言和mock)(自由搭配)
  4. Qunit——出自jquery,后来独立出来
常见的断言库

Chai——支持所有风格-(比较全面)(占据市场份额60%+)
Should——
expect
Assert——node环境直接使用

Mock库

sinon

Test runner

karma

覆盖率工具

istanbul(伊斯坦布尔)

应用场景

1.vue初始化一个项目时的选项
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值