TypeScript Jest 单元测试 搭建

ops/2025/1/11 13:08:20/

NPM TypeScript 项目搭建

创建目录

mkdir mockprojectcd mockproject

初始化NPM项目

npm init -y

在这里插入图片描述

安装TypeScript

npm i -D typescript

在这里插入图片描述

使用VSCode 打开项目

在这里插入图片描述
创建TS配置文件tsconfig.json

{"compilerOptions": {"target": "es5","module": "commonjs","declaration": true,"outDir": "./lib","strict": true,"lib": ["es6"]},"include": ["src"],"exclude": ["node_modules"]
}

在这里插入图片描述

创建src 目录,创建文件src/index.ts 内容如下:

export const Hello = (name: string) => `Hello ${name}`;

在这里插入图片描述

在package.json中的scripts中添加ts的构建命令

"build": "tsc"

在这里插入图片描述

CTRL + ` 打开终端测试构建。

npm run build

在这里插入图片描述

构建完成后可以发现项目目录中多了lib 里面就是我们的Hello函数。

Jest 单元测试集成

安装依赖

npm i -D jest ts-jest @jest/globals

在这里插入图片描述
安装后package.json中开发依赖将会出现如下:
在这里插入图片描述
生成Jest配置文件

npx ts-jest config:init

jest.config.js 生成内容如下:

/** @type {import('ts-jest').JestConfigWithTsJest} **/
module.exports = {testEnvironment: "node",transform: {"^.+.tsx?$": ["ts-jest",{}],},
};

在这里插入图片描述

在package.json中添加单元测试命令,若原来有test命令则删除,填入一下内容。

"test": "jest"

在这里插入图片描述

通常会建立一个tests目录用于存放测试用例,tests中的测试用名称与被测试对象名称保持一致,但是添加上.test.ts后缀,目录结构也保持一致。

创建测试目录tests,创建测试文件tests/index.test.ts

import { describe, expect, test } from '@jest/globals';
import { Hello } from '../src/index';describe('Mock module', () => {test('Hello world', () => {expect(Hello("abc")).toBe("Hello abc");});
});

在这里插入图片描述

打开终端使用测试命令执行测试

npm run test

可以看到执行测试后执行我们定义的测试用例,并提示了Pass的提示。
在这里插入图片描述

参考文献

[1]. 掘金 . [译文]一步步构建发布一个 TypeScript NPM 包 . 小被子 . 2019.07 . https://juejin.cn/post/6844903892119977998
[2]. jest . Getting Started . 2024 . https://jestjs.io/docs/getting-started


http://www.ppmy.cn/ops/149166.html

相关文章

Lambda expressions in C++ (C++ 中的 lambda 表达式)

Lambda expressions in C {C 中的 lambda 表达式} 1. Parts of a lambda expression (Lambda 表达式的各个部分)1.2. Parameter list (Optional) References lambda /ˈlm.də/:the 11th letter of the Greek alphabet (希腊语字母表的第 11 个字母)https://learn.m…

Go语言中的sync.WaitGroup详解

Go 语言作为一种现代并发编程语言,提供了强大的并发模型和工具。其中,sync.WaitGroup 是 Go 标准库中的一个重要同步工具,广泛用于协程(goroutine)的同步控制。本文将深入探讨 sync.WaitGroup 的工作原理、应用场景以及如何避免使用共享变量和信号量来实现同步。 一、syn…

身份鉴权(PHP)(小迪网络安全笔记~

免责声明:本文章仅用于交流学习,因文章内容而产生的任何违法&未授权行为,与文章作者无关!!! 附:完整笔记目录~ ps:本人小白,笔记均在个人理解基础上整理,…

机器学习赋能的智能光子学器件系统研究与应用

在人工智能与光子学设计融合的背景下,科研的边界持续扩展,创新成果不断涌现。从理论模型的整合到光学现象的复杂模拟,从数据驱动的探索到光场的智能分析,机器学习正以前所未有的动力推动光子学领域的革新。据调查,目前…

Ubuntu 磁盘修复

Ubuntu 磁盘修复 在 ubuntu 文件系统变成只读模式,该处理呢? 文件系统内部的错误,如索引错误、元数据损坏等,也可能导致系统进入只读状态。磁盘坏道或硬件故障也可能引发文件系统只读的问题。/etc/fstab配置错误,可能…

Java基础 注解

分类 Java自带的标准注解,包括Override、Deprecated和SuppressWarnings,分别用于标明重写某个方法、标明某个类或方法过时、标明要忽略的警告,用这些注解标明后编译器就会进行检查。元注解,元注解是用于定义注解的注解&#xff0…

关于Mac中的shell

1 MacOS中的shell 介绍: 在 macOS 系统中,Shell 是命令行与系统交互的工具,用于执行命令、运行脚本和管理系统。macOS 提供了多种 Shell,主要包括 bash 和 zsh。在 macOS Catalina(10.15)之前&#xff0c…

zookeeper监听机制(Watcher机制)

文章目录 引言I zookeeper监听机制Watcher机制实现分布式的通知功能触发事件种类Watcher的三个过程II watch机制特点一次性触发事件封装event异步发送先注册再触发常见的通知状态和事件类型III 应用案例(Kafka)Kafka的消息模型Kafka在Zookeeper中保存的元数据Kafka 基于Contr…