Jest与typescript单元测试

文章目录

    • 前言
    • 安装
    • 配置
      • .vscode/launch.json
      • jest.config.ts
      • ts.config.ts
    • 测试例子

前言

简单记录一下vscode里跑Jest单元测试。

安装

yarn add -D ts-jest ts-node @types/jest jest

配置

.vscode/launch.json

{"version": "0.2.0","configurations": [{"type": "node","request": "launch","name": "Jest single run all tests","program": "${workspaceRoot}/node_modules/jest/bin/jest.js","args": ["-c","./jest.config.ts","--verbose","-i","--no-cache"],"console": "integratedTerminal","internalConsoleOptions": "neverOpen"}]}

jest.config.ts

import type { Config } from 'jest';const config: Config = {verbose: true,preset: "ts-jest",transform: { "^.+\\.ts?$": "ts-jest" },moduleFileExtensions: ["ts", "tsx", "js", "jsx", "json", "node"],
};export default config;

ts.config.ts

{"compilerOptions": {"target": "es5","lib": ["dom", "dom.iterable", "esnext"],"allowJs": true,"skipLibCheck": true,"strict": true,"noEmit": true,"esModuleInterop": true,"module": "esnext","moduleResolution": "bundler","resolveJsonModule": true,"isolatedModules": true,"jsx": "preserve","incremental": true,"types": ["jest","node"],"plugins": [{"name": "next"}],"paths": {"@/*": ["./src/*"]}},"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts", "tests/**/*"],"exclude": ["node_modules"]
}

测试例子

import dayjs from 'dayjs';
import { describe } from 'node:test';
dayjs.locale('zh-cn') // 全局使用简体中文import add from './add';describe('add', () => {it('should return the sum of two numbers', () => {expect(add(1, 2)).toBe(3);});it('should return the sum of zero numbers', () => {expect(add(0, 0)).toBe(0);});it('should return the sum of negative numbers', () => {expect(add(-1, -2)).toBe(-3);});
});describe('正则表达式测试', () => {it('should get the host name', () => {const str = 'www.baidu.com';const regex = /www\.(.*)\.(com|cn|org)/;const result = str.match(regex);console.log(result)if(result) {console.log(result[1])expect(result[1]).toBe('baidu')}        });})

在这里插入图片描述

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

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

相关文章

【文件上传系列】No.0 利用 FormData 实现文件上传、监控网路速度和上传进度(原生前端,Koa 后端)

利用 FormData 实现文件上传 基础功能:上传文件 演示如下: 概括流程: 前端:把文件数据获取并 append 到 FormData 对象中后端:通过 ctx.request.files 对象拿到二进制数据,获得 node 暂存的文件路径 前端…

docker网络【重点】

一、网络知识 1、桥接模式:用于链接两个不同网络段的设备,是共享通信的一种方式 2、桥接设备:工作在OSI模型的第二层(数据链路层)。根据MAC地址转发数据帧,类似于交换机,只能转发同一网段&…

C++11:lambda表达式(对各个参数详细说明+注意事项+使用案例+探究底层)

目录 一、lambda表达式语法 1.lambda表达式书写格式 2. lambda表达式各部分说明 3.捕获列表说明 二、lambda表达式的一些使用案列 1.借助auto将lambda表达式赋值给一个变量来直接调用。 2.对于类似于sort对自定义类型排序等情况时使用lambda可简化代码 以前我们对自定义…

【SpringBoot】yml配置文件注释中文乱码

错误展示 搭了一个环境,一启动项目,yml文件中文全乱码了 解决措施 按如图顺序操作 结果 再次启动项目,乱码已解决!

Spring IoC和DI

目录 一. Spring是什么 IoC DI 二. IoC&DI的使用 IoC 1.Controller(控制器存储) 2.Service(服务存储) 3.Repository(仓库存储) 4.Componemt(组件存储) 5.Configuratio…

JavaSE基础50题:8. 获取一个数二进制序列中所有的偶数和奇数位,分别输出二进制序列。

概述 获取一个数二进制序列中所有的偶数和奇数位,分别输出二进制序列。 如:从右往左数 0111(如图) 偶数位:01 奇数位:11 代码 public static void main(String[] args) {Scanner scanner new Scanner(Sys…

c++ - 警告 : treating ‘c-header‘ input as ‘c++-header‘ when in C++ mode, 此行为已弃用

一、问题出现 在进行多文件编译的时候报错 二、原因 我们多文件编译的时候加了头文件 三、解决办法 去掉头文件,只编译源文件

第二十一章总结。。

计算机网络实现了堕胎计算机间的互联,使得它们彼此之间能够进行数据交流。网络应用程序就是再已连接的不同计算机上运行的程序,这些程序借助于网络协议,相互之间可以交换数据,编写网络应用程序前,首先必须明确网络协议…

JAVA调优

1 JAVA虚拟机 1.1 基本组成 通常来说Java平台标准版(Java SE)包括 Java SE开发工具包(JDK)和Java SE运行时环境(JRE)。 JRE提供了运行以Java编程语言编写的applet和应用程序所必需的库,Java虚…

(Gemini)双子座:一系列高能力多模态模型的前世今生

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…

urllib 的 get 请求和 post 请求(二)

目录 一、爬取网页、图片视频 二、请求对象的定制 三、get请求的urlencode方法 四、post 请求英文翻译 一、爬取网页、图片视频 目标:下载数据 知识点:urllib.request.urlretrieve()下载 使用urllib下载网页、图片和视频 下载网页: #…

Livox_ros_driver2 消息 (msg) 类型对 SLAM 应用程序的适配

Title: Livox_ros_driver2 消息 (msg) 类型对 SLAM 应用程序的适配 文章目录 I 前言II. 查看 ROS 消息III. Livox ROS 驱动的消息类型IV. 适配修改应用程序V. 总结 I 前言 有时候, 拿到最新的 Livox 激光传感器, 比如 HAP, 原厂也提供了 ROS 驱动支持 livox_ros_drivers2 (htt…