1、初始化单元测试示例

import { Test, TestingModule } from '@nestjs/testing';
import { AppController } from './app.controller';
import { AppService } from './app.service';describe('AppController', () => {let appController: AppController;beforeEach(async () => {const app: TestingModule = await Test.createTestingModule({controllers: [AppController],providers: [AppService],}).compile();appController = app.get<AppController>(AppController);});describe('root', () => {it('getHello', () => {let a = {age:18,name:'wu'}expect(appController.getHello()).toBe(JSON.stringify(a));});});
});

如下代码也可以修改

const app: TestingModule = await Test.createTestingModule({controllers: [AppController],providers: [AppService],}).compile();

修改为直接导入AppModule

const app: TestingModule = await Test.createTestingModule({imports:[AppModule]}).compile();

示例中测试了AppController的getHello方法,也可以直接测试AppService的getHello方法

如下,两者效果一样

import { Test, TestingModule } from '@nestjs/testing';
import { AppService } from './app.service';
import { AppModule } from "./app.module";describe('AppController', () => {let appService: AppServicebeforeEach(async () => {const app: TestingModule = await Test.createTestingModule({imports:[AppModule]}).compile();appService = app.get<AppService>(AppService)});describe('root', () => {it('getHello', () => {let a = {age:18,name:'wu'}expect(appService.getHello()).toBe(JSON.stringify(a));});});
});

运行npm run test时,执行jest命令,jest的配置则使用的是package.json中的jest配置

2、e2e测试

示例

import { Test, TestingModule } from '@nestjs/testing';
import { INestApplication } from '@nestjs/common';
import * as request from 'supertest';
import { AppModule } from './../src/app.module';describe('AppController (e2e)', () => {let app: INestApplication;beforeEach(async () => {const moduleFixture: TestingModule = await Test.createTestingModule({imports: [AppModule],}).compile();app = moduleFixture.createNestApplication();await app.init();});it('/ (GET)', () => {return request(app.getHttpServer()).get('/').expect(200).expect('Hello World');});
});

上面的也可以直接导入AppService和AppController

执行npm run test:e2e

jest运行时使用的是jest-e2e.json中的配置

3、supertest示例

执行npm run start:dev,启动本地服务

发送请求

const request = require('supertest')
request('127.0.0.1:3000').get('/cats').expect('Hello World').end(function (err, res) {console.log(res.text)
})

如果要添加header,可以用set进行链式追加

request('127.0.0.1:3000').get('/api/test').set('cookie','JSESSIONID=adf5e2c3-6a0e-4793-9af1-bc9a93564f21').expect(200).end(function (err, res) {console.log(res.text)
})

1.3 nest.js使用supertest单元测试及e2e测试相关推荐

  1. Webpack单元测试,e2e测试

    此篇文章是续 webpack多入口文件.热更新等体验,主要说明单元测试与e2e测试的基本配置以及相关应用. 一.单元测试 实现单元测试框架的搭建.es6语法的应用.以及测试覆盖率的引入. 1. 需要安 ...

  2. 自动化测试(一)基本介绍——测试框架的分类 单元测试工具 E2E测试工具

    自动化测试(一)基本介绍--测试框架的分类 & 单元测试工具 & E2E测试工具 5-3 自动化测试 课程介绍 在前端界,浏览器兼容性是让工程师们头疼的问题,对于经验丰富的人来说,很清 ...

  3. 单元测试与E2E测试

    编写一个最基础的测试 以一个包含 E2E 测试常用操作的测试用例来介绍 Cypress 的基本使用.结合官方文档给的案例一起看风味更佳. 打开.跳转网页:打开 eleme h5 订餐首页 滚动首页餐厅 ...

  4. 单元测试和E2E测试

    单元测试 把代码看成一个个组件,对每个组件进行单独测试 测试内容主要是组件内每一个函数的返回结果是不是和期望值一样 代码覆盖率是指代码中每个函数的每种情况的测试情况 E2E测试 把程序当做黑盒子,对于 ...

  5. 测试您的neo4j nest js应用程序

    This article is one of a series of blog posts that accompany the Livestream on the Neo4j Twitch Chan ...

  6. 学完这篇 Nest.js 实战,还没入门的来锤我!(长文预警)

    大厂技术  高级前端  Node进阶 点击上方 程序员成长指北,关注公众号 回复1,加入高级Node交流群 前言 最近一直比较忙, 而且自己工作中做的事也不适合写文章,所以一直没有更文.. 最近接到一 ...

  7. nest.js学习笔记(一)

    nest.js学习笔记(一) 一.安装nest.js 前置条件 运行项目 目录介绍 二.nest.js cli 常用命令 三.RESTful 风格设计 1.接口url 2.RESTful 版本控制 四 ...

  8. js return 后 运行 另_新手入门Nest.js(六) 控制器Resources、路由通配符

    点击上方公众号,可快速关注 作者:鲲鹏友人原文链接:https://www.gowhich.com/blog/1067 Nest.js控制中的Resources 前面介绍了路由中如何通过GET方式访问 ...

  9. 1. Nest Js

    第一步 在这一组文章中, 您将了解 Nest 的核心基础知识.为了了解基本的 nest 应用程序构建模块,我们将构建一个基本的 CRUD 应用程序, 其中的涵盖了大量的基础功能. 语言 我们爱上了 T ...

最新文章

  1. Centos6.3下rsync+sersync安装配置笔记
  2. Linux文件锁学习-flock, lockf, fcntl
  3. 计算机与数字媒体专业概论
  4. 记录一次elastic-job分片查询及基础概念理解
  5. QQ登录pc端测试用例
  6. 基于DEM数据的河流提取
  7. OBS 录制黑屏的解决方法
  8. ansys2020视频教程
  9. Vertica ros和wos介绍
  10. Qt音视频开发27-Onvif设备搜索
  11. 助力“双11”智能化物流,顺丰、中通、韵达分享架构改造经验
  12. 06.奇特的一生评语
  13. 资深IT经理人的辞职信 - 怀着梦想去远行!- 让自己慢下来(29)
  14. 云计算面临的安全威胁,主要来自于哪几个方面?
  15. LightOJ 1079 Just another Robbery
  16. 【我的渲染技术进阶之旅】Google开源的基于物理的实时渲染引擎Filament源码分析:在android中如何使用cmgen命令自动将.hdr文件转换为.ktx文件或者.rgb32文件等?
  17. Android应用统计-使用时长及次数统计(一)
  18. 【Windows11来了】立刻安装Windows11预览版抢先体验(虚拟机 | 含详细安装步骤)
  19. python return break 区别_python中return和break之间的区别是什么?
  20. 使用PCA拟合平面(Plane Fitting using PCA)

热门文章

  1. 健康生活 多用肥皂少用洗涤剂
  2. 微信公众平台开发测试账号配置URL失败的问题
  3. 【网络爬虫】初探网络爬虫
  4. stl排序之sort函数
  5. git commit 规范及 changelog
  6. 快手程序员爆料:有大厂背书就是好,这就是光环效应
  7. Json 实现数据添加/更新 的页面效果
  8. leo-editor 关于 flutter 企业级路由 fluro 官方例子文学化编程分析
  9. 一文看懂RabbitMQ
  10. 你有花生我有酒,一本学道看一天(一)