草庐IT

Jest使用

一、测试到底测什么提到测试的时候,即使是最简单的一个代码块可能都让初学者不知所措。最常问的问题的是“我怎么知道要测试什么?”。如果你正在写一个Web应用,那么你每个页面每个页面的测试用户交互的方式,就是一个很好的开端了。但Web应用也是由很多个函数和模块组成的代码单元,也是需要测试的。通常有两种情况:●你接手的遗留代码没有写测试用例●你必须从无到有的实现一个新功能该怎么办呢?对于上面两种场景,你可以把测试视为代码的一部分来编写。我所说的这些代码,是用来检查给定的函数是否产生预期输出结果的。一个典型的测试流程如下:引入要测试的函数给函数一个输入定义预期输出检查函数是否返回了预期的输出结果就这么多

vue+jest 单元测试配置+用例

目录目录1Jest说明文档21、搭建node环境包2这里安装环境是node18,npm9.5.0。2TestRunner22、安装jest3Jest安装步骤4项目的根目录下创建一个.babelrc配置文件:4在项目的根目录下创建jest.config.js43、全局设定5预处理和后处理5方法64、断言6真假断言6数字断言7字符串断言toMatch8数组&迭代器断言toContain8异常断言toThrow8快照测试95、Jest使用指南--Mock篇9JestMock9jest.fn()9jest.spyOn()9总结106、Vue/test-utilsAPI使用说明10Jest说明文档搭建n

Jest:目前最广泛使用的前端 JavaScript 测试框架

Jest是一个简单易用的JavaScript测试框架。最初由Meta公司团队维护。2022年5月,Meta公司正式将自己的开源项目Jest移交给 OpenJSFoundation[1],这表示Jest由公司驱动变为社区驱动,有OpenJSFoundation保底,Jest将不会因公司发展需要而停止维护。下面我们就来学习吧。快速上手初始化项目首先创建项目目录:mkdirjest-demos&&cdjest-demosnpminit-y然后,安装Jest依赖:npminstall--save-devjest第一个测试文件创建待测试文件 src/sum.js:functionsum(a,b){ret

node.js - 用 Jest 测试 GraphQL 解析器

我想使用Jest为GraphQL解析器编写测试,但真的不知道从哪里开始。解析器是使用NodeJS上的Mongoose写入MongoDB数据库的简单CRUD函数。类型:typeArticle{_id:ID!title:Stringauthors:[User]}查询extendtypeQuery{articles:[Article]article(_id:ID!):Article}解析器(只读)Query:{articles:()=>newPromise((resolve,reject)=>{Article.find({},(err,articles)=>{if(err)reject(er

mongodb - 使用 Jest 测试具有数据库调用的函数

我是Jest和一般代码测试的新手。我想测试一个使用mongoose从mongodb数据库中检索数据的函数。当我运行测试时,我正在测试的函数内对数据库的所有调用都返回null。测试需要从数据库检索数据的函数的推荐方法是什么?如果您需要代码示例或更多信息,请告诉我。更新:这是我的代码:代码.js...functionbuildText(listing,messageRule,reservation,isReview=false,isLastMinuteMessage=false){returnnewPromise(asyncfunction(resolve){constname=reser

处理Jest,React和WebPack的全局进口

我最近开始从事一个已经成熟的项目,在该项目中,我正在整合开玩笑的测试框架。该项目与WebPack使用React。在WebPack配置中,团队正在使用webpack.ProvidePlugin提供反应,lodash和classNames(不是我会做的,而是什么)。我遇到的问题是,文件顶部的大多数React类都包含类似的内容React.Component,由于WebPack基础配置,其工作正常。但是,当我运行相应的测试文件时,我只会得到Reactisnotdefined除非我明确要求反应。有一个webpack.test.config需要基本webpack配置的文件,但是我似乎无法获得它,以便我可以

javascript - jest-jasmine2 env.js 未处理的错误

我在使用Jest单元测试来测试我的代码时收到这条神秘的错误消息。console.errornode_modules/jest-jasmine2/build/jasmine/Env.js:198Unhandlederrorconsole.errornode_modules/jest-jasmine2/build/jasmine/Env.js:199Erroratmodel.wrappedPointCut[assave](/home/pi/dev/Group_2/node_modules/mongoose/lib/services/model/applyHooks.js:131:29)at

前端自动化测试(二)Vue Test Utils + Jest

1、概述1、为什么需要自动化测试?项目会从快速迭代走向以维护为主的状态,因此引入自动化测试能有效减少人工维成本。自动化的收益=迭代次数*全手动执行成本-首次自动化成本-维护次数*维护成本对于自动化测试,相对于发现未知问题,更倾向于避免可能的问题。2、分类(1)单元测试单元测试(unittesting),是指对软件中的最小可测试单元进行检查和验证,通常是针对函数、模块、对象进行测试,但在前端应用中组件也是被测单元,对于代码中多个组件共用的工具类库、多个组件共用的子组件应尽可能提高覆盖率。特点:单元测试执行速度很快;应该避免依赖性问题,如不存取数据库,不访问网络等,而是使用工具虚拟出运行环境;由于

node.js - Jest 、 Mongoose 和异步/等待

我在Node中有一个Mongoose模型。我想Jest在我的测试套件中获取所有记录。这是我的测试:test('shouldfindandreturnallactivecouponcodes',async()=>{constres=awaitCouponModel.find({active:true});expect(res).toBeDefined();consts=res;console.log(s);});如您所见,我使用了async/await。我收到以下超时错误:●couponcodetest›shouldfindandreturnallactivecouponcodesTim

记录使用vue-test-utils + jest 在uniapp中进行单元测试

目录前情安装依赖package.json配置jest配置测试文件目录编写setup.js编写第一个测试文件jest.fn()和jest.spyOn()jest解析scss失败测试vuex$refs定时器测试函数调用n次手动调用生命周期处理其他模块导入的函数测试插槽前情uniapp推荐了测试方案@dcloudio/uni-automator,属于自动化测试,api提供的示例偏重于渲染组件,判断当前渲染的组件是否和预期一致vue推荐的测试方案vuetestutils,属于单元测试,可以搭配jest、mocha等单测运行器我选了方案2🕶️关于vue的组件测试,vue官方提到:你的Vue应用中大部分内