РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗jsnsSpTeE2 140 of 201 menu
◀ ▶

Сквозной тест в Nest

Сборка контейнера не гоняет HTTP, а клиент всё равно бьёт в реальный адрес. Один сломанный префикс или пропущенный модуль всплывёт только когда сервер слушает порт и маршрутизация включена.

Сквозной тест поднимает INestApplication через createNestApplication и init, затем пакет supertest шлёт запрос на getHttpServer так же, как браузер. Vitest описывает сценарий, раннер его выполняет.

Покажем на примере постов:

npm install supertest

Корневой модуль со страницей списка:

import { Module } from '@nestjs/common'; import { PostController } from './post.controller.js'; import { PostService } from './post.service.js'; @Module({ controllers: [PostController], providers: [PostService], }) export class AppModule {}
import { Controller, Get } from '@nestjs/common'; import { PostService } from './post.service.js'; @Controller('posts') export class PostController { postService: PostService; constructor(postService: PostService) { this.postService = postService; } @Get() getPosts(): string { return this.postService.getPosts(); } }
import { Injectable } from '@nestjs/common'; @Injectable() export class PostService { getPosts(): string { return 'All posts'; } }

Сценарий поднимает приложение и проверяет код ответа:

import { describe, it, beforeEach, afterEach } from 'vitest'; import { Test } from '@nestjs/testing'; import { INestApplication } from '@nestjs/common'; import request from 'supertest'; import { AppModule } from '../src/app.module.js'; describe('App (e2e)', () => { let app: INestApplication; beforeEach(async () => { const moduleRef = await Test.createTestingModule({ imports: [AppModule], }).compile(); app = moduleRef.createNestApplication(); await app.init(); }); afterEach(async () => { await app.close(); }); it('GET /posts', async () => { await request(app.getHttpServer()) .get('/posts') .expect(200); }); });

Запуск:

npx vitest run test/app.e2e.spec.ts

Поднимите приложение с WorkerController в сквозной проверке и добейтесь успешного кода ответа на адресе списка работников.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить