Heim >Web-Frontend >js-Tutorial >Wenn ETests in NestJS mir Kopfschmerzen bereiten
Debugging NestJs E2E -Tests können unglaublich frustrierend sein, insbesondere wenn scheinbar einfache Probleme aufgrund des Verhaltens ohne Papiere auftreten. Ich habe kürzlich ein Problem gestoßen, bei dem meine E2E -Tests aufgrund des @Processor
-Dekorators in NestJs konsequent versagt haben. Dieser Dekorateur stellt sich heraus
ioredis-mock
versucht, die gesamte Redis -Wechselwirkung mit das zugrunde liegende Problem nicht zu lösen. ioredis-mock
@Processor
-Dekorators in meiner @Processor
-Fatei. Das Verhalten dieses Dekorateurs ist in der NestJS -Dokumentation nicht ausdrücklich detailliert, was zu unerwarteten Testfehlern führt. src/user/audio.consumer.ts
<code class="language-typescript">import { getQueueToken } from '@nestjs/bullmq'; import { INestApplication } from '@nestjs/common'; import { Test, TestingModule } from '@nestjs/testing'; import * as request from 'supertest'; import { AppModule } from '../src/app.module'; import { mockBullMqService } from './bullmq.mock'; describe('AppController (e2e)', () => { // ... (beforeAll, afterAll omitted for brevity) it('/ (GET)', () => { return request(app.getHttpServer()) .get('/cart') .expect(200) .expect('Hi'); }); });</code>Dies scheiterte wegen des
-Dekorators. Die Lösung erforderte einen gezielteren Ansatz für das Verspotten: @Processor
<code class="language-typescript">const moduleFixture: TestingModule = await Test.createTestingModule({ imports: [AppModule], }) .overrideProvider(getQueueToken('YOUR_QUEUE_NAME')) .useValue({ on: jest.fn(), add: jest.fn(), process: jest.fn(), }) .overrideProvider(AudioConsumer) // Crucial addition .useValue({}) // Provide an empty value .compile();</code>Durch explizit Überschreiben des
-Anbieters mit einem leeren Objekt umgangen ich das implizite Verhalten des AudioConsumer
-Dekorators umgangen und die Testfehler aufgelöst. @Processor
behoben ist, habe ich die Probleme mit TestContainern und einer echten Redis -Instanz noch nicht vollständig behandelt. Weitere Untersuchungen sind erforderlich, um die Hauptursache für diese spezifischen Fehler zu bestimmen. @Processor
Das obige ist der detaillierte Inhalt vonWenn ETests in NestJS mir Kopfschmerzen bereiten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!