jest测试

文章目录

  • 测试
    • test
    • expect
    • toThrow
  • async
    • Promise
    • Async/Await
  • 作用域
    • 一次性设置 beforeAll` and `afterAll
    • 重复设置 beforeEach` 和 `afterEach
    • `describe` 块
  • mock
  • cli
  • 配置
  • 覆盖率测试报告

测试

test

test('name', () => {function} }

expect

() => {expect(期望value).toBe(匹配value);
}

toThrow

测试某函数在调用时是否抛出了错误

() => {expect(期望value).toThrow(Error);
}

async

Promise

测试fetchData()返回一个Promise

() => {fetchData().then(data => {expect(data).toBe('peanut butter');});
}

Async/Await

async () => {const data = await fetchData();expect(data).toBe('peanut butter');
}async () => {expect.assertions(1);try {await fetchData();} catch (e) {expect(e).toMatch('error');}
}

作用域

一次性设置 beforeAllandafterAll

每个文件前后执行

重复设置 beforeEachafterEach

每个test前后执行

//每个测试之前调用方法 initializeCityDatabase()
beforeEach(() => {initializeCityDatabase();
});
//每个测试后,调用方法 clearCityDatabase()
afterEach(() => {clearCityDatabase();
});

describe

describe('matching cities to foods', () => {// Applies only to tests in this describe blockbeforeEach(() => {return initializeFoodDatabase();});test('Vienna <3 veal', () => {expect(isValidCityFoodPair('Vienna', 'Wiener Schnitzel')).toBe(true);});test('San Juan <3 plantains', () => {expect(isValidCityFoodPair('San Juan', 'Mofongo')).toBe(true);});
});

mock

cli

# 运行所有测试
jest
# 运行指定文件名称
jest path/to/my-test.js
jest --verbose --no-cache --coverage --detectOpenHandles
--verbose 选项会以详细模式显示测试结果
--no-cache 选项禁用了测试结果的缓存
--coverage 选项会生成测试覆盖率报告
--detectOpenHandles 选项会检测未关闭的资源句柄,以帮助找出可能的内存泄漏问题。

配置

Jest会自动查找目录下文件名为 jest.config.js|ts|mjs|cjs|json 的配置文件,

您可以使用 --config 标记来指明配置文件的路径。

{//Jest 查找测试文件的根目录roots: [array<string>],// 转换 Node 不支持的某些语法transform: [object<string, pathToTransformer | [pathToTransformer, object]>],// 忽略 将跳过覆盖范围信息。coveragePathIgnorePatterns: [array<string>],// 报告格式coverageReporters: [array<string | [string, options]>],// 模块解析时的目录列表moduleDirectories: [array<string>],// 模块解析时的额外模块路径modulePaths: [array<string>],// 将路径映射为模块名称moduleNameMapper: pathsToModuleNameMapper(compilerOptions.paths, {prefix: '<rootDir>/',}),preset: 'ts-jest',
};

覆盖率测试报告

---------------------------------------|---------|----------|---------|---------|------------------------
File                                   | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s       文件名或文件路径                						语句覆盖率  分支覆盖率   函数覆盖率  行覆盖率    未覆盖的代码行号
---------------------------------------|---------|----------|---------|---------|------------------------
All files                              |   87.89 |    52.99 |   88.88 |    87.2 |                         application/httpController/health     |     100 |    59.09 |     100 |     100 |                         API.ts                               |     100 |    59.09 |     100 |     100 | 12-15                   application/httpController/middleware |   72.54 |    30.43 |     100 |   70.83 |                         error.ts                             |     100 |      100 |     100 |     100 |                         errorResponse.ts                     |     100 |      100 |     100 |     100 |trace.ts                             |     100 |      100 |     100 |     100 |util.ts                              |   51.72 |     23.8 |     100 |      50 | 21,24-37error                                 |     100 |      100 |     100 |     100 |errorCode.ts                         |     100 |      100 |     100 |     100 |index.ts                             |     100 |      100 |     100 |     100 |service/workflow/converter            |   88.23 |     60.6 |   94.73 |   88.07 |index.ts                             |   97.82 |    58.82 |      90 |   97.77 | 20validationConverter.ts               |   84.11 |    61.22 |     100 |   83.96 | 16,19,22,26-29,36,90,106,210,226,229,232,236,242-245 util                                  |   77.77 |        0 |   57.14 |    62.5 |dateHandlers.ts                      |   77.77 |        0 |   57.14 |    62.5 | 29-32,38,42
---------------------------------------|---------|----------|---------|---------|------------------------------------------------------
Test Suites: 5 passed 通过的测试套件, 5 total 总测试套件
Tests:       15 passed 通过的测试用例, 15 total
Snapshots:   0 total	快照测试的数量
Time:        7.472 s	测试运行的总时间

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/19185.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python海龟绘图(你的作业说不定就在这里)

三角形 from turtle import * for i in range(3):forward(100)left(120)基本绘图​​​​​ 让海龟前进 100 步: forward(100)你应该会看到&#xff08;最可能的情况&#xff0c;是在你的显示器的一个新窗口中&#xff09;海龟画出一条线段&#xff0c;方向朝东。 改变海龟的…

spdlog日志库源码:线程池thread_pool

线程池 线程池本质上一组事先创建的子线程&#xff0c;用于并发完成特定任务的机制&#xff0c;避免运行过程中频繁创建、销毁线程&#xff0c;从而降低程序运行效率。通常&#xff0c;线程池主要涉及到以下几个方面问题&#xff1a; 如何创建线程池&#xff1f;线程池如何执…

Ubuntu22.04之解决:登录计算机的密码与登录密钥环里的密码不再匹配(二百三十四)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

微信网页版登录插件v1.1.1

说到如今的微信客户端&#xff0c;大家肯定会有很多提不完的意见或者建议。比如这几年体积越来越大&#xff0c;如果使用频率比较高&#xff0c;那占用空间就更离谱了。系统迷见过很多人电脑C盘空间爆满&#xff0c;都是由于微信PC版造成的。 而且&#xff0c;它还加了很多乱七…

15、Spring系统-AOP

ProxyFactory选择cglib或jdk动态代理原理 ProxyFactory在生成代理对象之前需要决定到底是使用JDK动态代理还是CGLIB技术&#xff1a; 代理对象创建过程 JdkDynamicAopProxy 在构造JdkDynamicAopProxy对象时&#xff0c;会先拿到被代理对象自己所实现的接口&#xff0c;并且…

VSCODE终端输出中文乱码 菱形问号?

问题现象 VSCODE终端输出中文乱码 菱形问号&#xff1f; 解决方法 方法一 设置系统环境变量 变量名&#xff1a;PYTHONIOENCODING 值&#xff1a;utf8 方法二 安装插件Code Runner插件在设置中搜索 code-runner.executorMap&#xff0c;再点击在setting.json中编辑&#x…

达梦数据库

达梦数据库 达梦Docker部署 达梦Docker部署 1、下载链接 https://pan.baidu.com/s/1RI3Lg0ppRhCgUsThjWV6zQ?pwdjc62 2、docker启动命令 docker run -d -p 5236:5236 \ --restartalways \ --name dm8 \ -e LD_LIBRARY_PATH/app/dm8/bin \ -e LENGTH_IN_CHAR1 \ -e CASE_SENS…

powershell 配合aria2实现简单的图片爬取

powershell 配合aria2实现简单的图片爬取 01 前言 现如今&#xff0c;提到爬虫&#xff0c;令人不得不提到Python&#xff0c;确实简单&#xff0c;也强大&#xff0c;到处都可以找到教程。故而今天换换口味&#xff0c;用powershell来实现&#xff0c;配合aria2的强大下载功…

目标检测 | R-CNN、Fast R-CNN与Faster R-CNN理论讲解

☀️教程&#xff1a;霹雳吧啦Wz ☀️链接&#xff1a;https://www.bilibili.com/video/BV1af4y1m7iL?p1&vd_sourcec7e390079ff3e10b79e23fb333bea49d 一、R-CNN R-CNN&#xff08;Region with CNN feature&#xff09;是由Ross Girshick在2014年提出的&#xff0c;在PAS…

leetcode 684.冗余连接

思路&#xff1a;并查集 这里的图比较像一种特殊的数据结构&#xff0c;其实也是图论的一种东西&#xff0c;就是基环树&#xff0c;但是这里并不是有向图&#xff0c;而是无向图&#xff0c;所以并不能用那种剪枝操作然后找基环。 看到连通量&#xff0c;我们应该能想到两种…

Qt 配置Eigen矩阵库 - 并简单测试

Qt 配置Eigen矩阵库 - 并简单测试 引言一、在Qt中配置Eigen二、低通Demo源码三、参考链接以及其他 引言 Eigen是一个开源的C模板库&#xff0c;提供了线性代数和矩阵运算的功能。它被设计为一个高性能、可扩展和易用的库&#xff0c;可以用于科学计算、机器学习和计算机图形学等…

HCIA-HarmonyOS Device Developer 课程大纲

一&#xff1a;OpenHarmony 介绍 - &#xff08; 3 课时&#xff09; - OpenHarmony 简介&#xff1b;OpenHarmony 设计理念&#xff1b;OpenHarmony 设计理念概述&#xff1b; - OpenHarmony 试图解决的问题&#xff1b;应用生态割裂问题&#xff1b;用户数据割裂问题&#…

服务器感染了. rmallox勒索病毒,如何确保数据文件完整恢复?

导言&#xff1a; 近年来&#xff0c;随着信息技术的飞速发展&#xff0c;网络安全问题日益凸显。其中&#xff0c;勒索病毒作为一种严重的网络威胁&#xff0c;对个人和企业数据造成了巨大的威胁。本文将重点介绍.rmallox勒索病毒的特点、传播途径以及应对策略&#xff0c;旨…

【LeetCode算法】第94题:二叉树的中序遍历

目录 一、题目描述 二、初次解答 三、官方解法 四、总结 一、题目描述 二、初次解答 1. 思路&#xff1a;二叉树的中序遍历。访问二叉树的左子树&#xff0c;再访问二叉树的根节点&#xff0c;最后访问二叉树的右叉树。 2. 代码&#xff1a; void order(struct TreeNode* r…

文心智能体平台丨创建你的四六级学习小助手

引言 在人工智能飞速发展的今天&#xff0c;我们迎来了文心智能体平台。该平台集成了最先进的人工智能技术&#xff0c;旨在为用户提供个性化、高效的学习辅助服务。今天&#xff0c;我们将向大家介绍如何利用文心智能体平台&#xff0c;创建一个专属于你的四六级学习小助手。…

Scikit-Learn随机森林回归

Scikit-Learn随机森林回归 1、随机森林1.1、集成学习1.2、Bagging方法1.3、随机森林算法1.4、随机森林的优缺点2、Scikit-Learn随机森林回归2.1、Scikit-Learn随机森林回归API2.2、随机森林回归实践(加州房价预测)1、随机森林 随机森林是一种由决策树构成的集成算法,它在大多…

ACM实训冲刺第二十二天

【碎碎念】今天学习ACM时间有点紧&#xff0c;只有30分钟&#xff0c;能写到哪算哪吧 人见人爱A^B&#xff08;数值运算与字符串处理&#xff09; 这段代码实现的是模幂运算&#xff0c;具体说是计算 A^Bmod1000 的值。模幂运算是一种在计算机科学和密码学中常用的算法&#xf…

初探Flask:Pycharm社区版创建Flask项目

文章目录 一、创建工程二、引入Flask库1.使用命令行安装Flask2.在PyCharm中安装Flask 三、创建Flask框架基本文件四、运行项目 本文将带您一步步创建一个简单的Flask项目&#xff0c;包括设置Python环境、安装Flask库以及创建基本的项目结构。 一、创建工程 首先&#xff0c;确…

SwanLab载入omegaconf配置教程

OmegaConf 是一个用于处理配置的 Python 库&#xff0c;尤其适用于需要灵活配置和配置合并的场景。 OmegaConf 与swanlab的集成非常简单&#xff0c;直接将omegaconf对象传递给swanlab.config&#xff0c;即可记录为超参数&#xff1a; from omegaconf import OmegaConf impo…

云原生网关 MSE-Higress

云原生网关 MSE-Higress 什么是云原生网关MSEMSE测评产品文档产品能力产品控制台 MSE与其他网关 什么是云原生网关MSE 在体验云原生网关 MSE-Higress功能之前&#xff0c;先了解一下什么是云原生网关 MSE&#xff0c;简单的说就是MSE就是遵循开源 Ingress/Gateway API 标准的下…