Lainbo

Lainbo's Blog

If you’re nothing without the suit, then you shouldn't have it.
github

前端工程化入门05 - 测试

什么是测试#

维基百科的定义:

在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。

也可以这样理解:测试的作用是为了提高代码质量和可维护性。

  1. 提高代码质量:测试就是找 BUG,找出 BUG,然后解决它。BUG 少了,代码质量自然就高了。
  2. 可维护性:对现有代码进行修改、新增功能从而造成的成本越低,可维护性就越高。

什么时候写测试#

如果你的程序非常简单,可以不用写测试。例如下面的程序,功能简单,只有十几行代码:

function add(a, b) {
    return a + b
}

function sum(data = []) {
    let result = 0
    data.forEach(val => {
        result = add(result, val)
    })

    return result
}

console.log(sum([1,2,3,4,5,6,7,8,9,10])) // 55

如果你的程序有数百行代码,但封装得很好,完美的践行了模块化的理念。每个模块功能单一、代码少,也可以不用写测试。

如果你的程序有成千上万行代码,数十个模块,模块与模块之间的交互错综复杂。在这种情况下,就需要写测试了。试想一下,在你对一个非常复杂的项目进行修改后,如果没有测试会是什么情况?你需要将跟这次修改有关的每个功能都手动测一边,以防止有 BUG 出现。但如果你写了测试,只需执行一条命令就能知道结果,省时省力。

测试类型与框架#

测试类型有很多种:单元测试、集成测试、白盒测试...

测试框架也有很多种:Vitest、Jest、Jasmine、LambdaTest...

单元测试#

什么是单元测试?维基百科中给出的定义为:

单元测试(英语:Unit Testing)又称为模块测试,是针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作。

从前端角度来看,单元测试就是对一个函数、一个组件、一个类做的测试,它针对的粒度比较小。

单元测试应该怎么写呢?

  1. 根据正确性写测试,即正确的输入应该有正常的结果。
  2. 根据错误性写测试,即错误的输入应该是错误的结果。

未完……#

参考资料#

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。