当前位置: 首页 > Web前端 > HTML

Jest测试框架,JSDoc学习

时间:2023-03-28 18:58:20 HTML

Jest测试框架,JSDoc学习一、单元测试1、什么是单元测试?在这种情况下,特定的结果、特定的目标就是我们编写的代码。2、单元测试的好处单元测试可以减少bug,提高代码的可读性和可维护性,为系统重构做铺垫,减少我们后续的工作量。2、Jest1,什么是JestJest是Facebook开发的一个测试框架,集成了测试执行器、断言库、spy、mock、快照和测试覆盖率报告等功能。2.Jest相对于其他测试框架的优势Jest开箱即用,不需要冗余配置,API简单,上手成本低,安全性高。三、Jest学习1、安装Jest首先创建一个名为Jest-demo的工程,在终端输入npminstall--save-devjest运行安装Jest框架。2.编写业务逻辑代码创建一个js文件,编写需要测试的功能代码,如下图,写一个加法的sum方法,然后使用module.exports把这个方法变成全局方法。3、编写单元测试代码创建一个.test.js文件来测试上面的sum方法,通过require引入sum方法进行测试。4.运行单元测试在package.json配置文件中加入test命令,然后在终端输入npmtest进行测试。下面是测试成功返回的结果:那么如果我们把业务逻辑代码修改错了,会返回什么样的结果呢?下面是测试失败返回的结果:如图,它会告诉我们期望收到的值和实际收到的值,这样可以帮助我们发现错误。注意:测试代码中的toBe是Jest框架的一个matcher,toBe相当于“===”,Jest框架还有很多其他的matcher,比如:toEqual,toBeNull,toBeUndefined,toBeDefined,toBeTruthy,toBeFalsy,在Adding不是。matcher前面表示否定,toBeGreaterThan,toBeLessThan,toBeGreaterThanOrEqual,toBeLessThanOrEqual,toBeCloseTo,toMatch,toContain,toThrow等5.测试异步代码异步操作是否成功,需要在matcher前面加上.resolves,如下图:如果异步操作失败报错,需要在matcher前面加上.rejects,如下图:6.Jest的四个HookJest提供了四个Hook,分别是beforeEach、afterEach,之前,之后。当你想在每次测试前后做同样的事情时,使用beforeEach和afterEach;当你想在所有测试前后做同样的事情时,使用beforeAll和afterEach。运行结果如下:可以使用describe关键字分组测试:注意: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函数不仅可以捕获函数的调用,还可以正常执行被窥探的函数.事实上,jest.spyOn()是jest.fn()的语法糖,它创建了一个模拟函数,其内部代码与被监视的函数相同。测试结果如下:三、JSDoc学习1、什么是JSDocJSDoc是一个JavaScript的API文档生成器,类似于Javadoc或phpDocumentor。文档注释可以直接添加到源代码中,紧挨着代码本身。JSDoc工具将扫描源代码并生成HTML文档。注意:JSDoc识别的注释必须以/**开头。2.JSDoc安装配置首先创建一个jsdoc-demo项目文件夹,然后在终端输入npminit-y生成package.json文件,再输入npmi-Djsdoc安装JSDoc工具。安装完成后,在根目录下创建jsdoc的配置文件配置jsdoc,最后在package.json中加入jsdoc的执行脚本。3、使用JSDoc创建函数,在函数上方使用/**创建函数相关的注释。在终端输入npmrundoc生成带注释的HTML文档,HTML文档保存在jsdoc配置文件中设置的文件夹中。HTML文档如下:注:和@param一样,@以jsdoc标签开头,jsdoc标签更多,如:@constructor、@typedef、@property、@return等,可以使用jsdoc标签来添加评论更多信息。