Jest测试框架、JSDoc学习

一、单元测试

1、什么是单元测试

    单元测试就是为检测特定的指标是否符合标准而采纳专用的工具或者办法进行验证,并最终得出特定的后果,这里所说的特定指标就是咱们编写的代码。

2、单元测试的益处

    单元测试能够缩小bug,晋升代码可读性可维护性,为零碎重构做铺垫,缩小咱们之后的工作量。

二、Jest

1、什么是Jest

    Jest是Facebook开发的集成了测试执行器、断言库、spy、mock、snapshot和测试覆盖率报告等性能的一个测试框架。

2、Jest相较于其余测试框架的劣势

    Jest开箱即用,无需多余配置,API简略,上手成本低,安全性高。

三、Jest学习

1、装置Jest

    首先创立一个名为Jest-demo的工程,在终端输出npm install --save-dev jest并运行进行Jest框架的装置。

2、编写业务逻辑代码

    创立一个js文件,用来编写须要测试的性能代码,如下图,编写了一个加法的sum办法,再用module.exports将此办法变成全局的办法。

3、编写单元测试代码

    创立一个.test.js文件,用来测试下面的sum办法,通过require引入sum办法,进行测试。

4、运行单元测试

    在package.json配置文件中减少test命令,之后在终端输出npm test就能够进行测试了。

    上面就是测试胜利返回的后果:

    那如果咱们把业务逻辑代码批改成谬误的之后会返回什么样的后果呢?

    上面是测试失败返回的后果:

    如图,它会通知咱们冀望接管到的值和理论接管到的值,这样就有助于咱们去寻找谬误。

注:测试代码中的toBe就是Jest框架的一个匹配器,toBe就相当于" === ",Jest框架还有许多其余的匹配器,如:toEqual,toBeNull,toBeUndefined,toBeDefined,toBeTruthy,toBeFalsy,在匹配器后面加上not.就是取反,toBeGreaterThan,toBeLessThan,toBeGreaterThanOrEqual,toBeLessThanOrEqual,toBeCloseTo,toMatch,toContain,toThrow等。

5、测试异步代码

    异步操作胜利须要在匹配器后面加上.resolves,如下图:


    异步操作失败报错须要在匹配器后面加上.rejects,如下图:


6、Jest的四个钩子

    Jest提供了四个钩子,别离是beforeEach、afterEach、beforeAll、afterAll。当想要在每个test前后都做同一件事件时,就用beforeEach和afterEach;想要在全副的test前后做同一件事件时,则用beforeAll和afterEach.

    运行后果如下图:

    能够用describe关键字对test分组:    注:1、放在describe外部的钩子仅对以后分组失效;2、当有多个describe时,会先执行所有的describe,再执行所有的test。

    运行后果如下图:

7、jest.fn()

    jest.fn() 用于创立一个函数,咱们能够设置该函数的返回值、监听该函数的调用、扭转函数的外部实现等等,咱们通过 jest.fn() 创立的函数有一个非凡的 .mock 属性,该属性保留了每一次调用状况,如下图:

    执行后果如下图:

7、jest.mock()

    jest.mock用于模仿整个内部模块,能够应用它来监督对类构造函数及其所有办法的调用。

    测试通过后果如下图:

8、jest.mock()

    Jest.spyOn()办法同样创立一个mock函数,然而该mock函数不仅可能捕捉函数的调用状况,还能够失常的执行被spy的函数。实际上,jest.spyOn()是jest.fn()的语法糖,它创立了一个和被spy的函数具备雷同外部代码的mock函数。

    测试通过后果如下图:

三、JSDoc学习

1、什么是JSDoc

    JSDoc 是一个用于 JavaScript 的 API 文档生成器,相似于 Javadoc 或 phpDocumentor。能够将文档正文间接增加到源代码中,就在代码自身旁边。 JSDoc 工具将扫描源代码并生成 HTML 文档。

注:JSDoc可能辨认的正文必须要以/**结尾。

2、JSDoc装置和配置

    首先创立一个jsdoc-demo工程文件夹,而后在终端输出 npm init -y 生成package.json文件,之后输出 npm i -D jsdoc 装置JSDoc工具,装置实现后,在根目录下创立jsdoc的配置文件对jsdoc进行配置,最初在package.json中增加jsdoc的执行脚本。

3、JSDoc应用

    创立一个函数,在函数上边用/**能够创立函数相干正文。

    在终端输出npm run doc能够生成正文的HTML文档,HTML文档保留在jsdoc配置文件中设定的文件夹下。

    HTML文档如下图:


注:相似@param这样@结尾的就是jsdoc的标签,还有更多的jsdoc标签,如:@constructor,@typedef,@property,@return等,能够应用jsdoc标签来为正文增加更多信息。