Try using it in your preferred language.

English

  • English
  • 汉语
  • Español
  • Bahasa Indonesia
  • Português
  • Русский
  • 日本語
  • 한국어
  • Deutsch
  • Français
  • Italiano
  • Türkçe
  • Tiếng Việt
  • ไทย
  • Polski
  • Nederlands
  • हिन्दी
  • Magyar
translation

Dies ist ein von KI übersetzter Beitrag.

제이의 블로그

Prisma Client Mocking für Unit-Tests in NestJS

  • Schreibsprache: Koreanisch
  • Referenzland: Alle Länder country-flag

Sprache auswählen

  • Deutsch
  • English
  • 汉语
  • Español
  • Bahasa Indonesia
  • Português
  • Русский
  • 日本語
  • 한국어
  • Français
  • Italiano
  • Türkçe
  • Tiếng Việt
  • ไทย
  • Polski
  • Nederlands
  • हिन्दी
  • Magyar

Von durumis AI zusammengefasster Text

  • Es ist wichtig, externe Abhängigkeiten für Unit-Tests zu entfernen.
  • Der Prisma Client von Prisma ORM kann einfach mit dem Paket jest-mock-extended gemockt werden.
  • Das Mocken hat die Erstellung von Unit-Tests vereinfacht.

Grundsätzlich sollten Anwendungseinheitentests isoliert ausgeführt werden. Daher ist es empfehlenswert, externe Abhängigkeiten wie Netzwerk-E/A oder Datenbanken zu entfernen, die sich auf die Testergebnisse auswirken könnten.

Ich verwende in diesem Toy-Projekt Prisma ORM. Deshalb schreibe ich diesen Beitrag, um zu dokumentieren, wie man Prisma Client einfach zum Testen von Einheiten mockt.


Installation des jest-mock-extended-Pakets

Installieren Sie das Paket, das auch in der offiziellen Prisma-Dokumentation empfohlen wird, mit dem obigen Befehl.


Prisma Client-Mocking

describe('UserService', () => {
let service: UserService;
let prismaMock: DeepMockProxy;

beforeEach(async () => {
    prismaMock = mockDeep();

    const module: TestingModule = await Test.createTestingModule({
      providers: [
        UserService,
        {
              provide: PrismaService,
              useValue: prismaMock,
        },
      ],
    }).compile();

    service = module.get(UserService);


 Einheitentest-Beispielcode

  describe('create', () => {
    it('Wenn die Benutzererstellung erfolgreich ist, sollten Benutzerinformationen zurückgegeben werden.', async () => {
        // Arrange
        const newUser = {
            email: 'test@test.com',
            password: 'test1234',
        };
        
          prismaMock.user.create.mockResolvedValue({
            id: 1,
            email: 'test@test.com',
            password: 'test1234',
          });

          // Act
          const result = await service.create(newUser);

          // Assert
          expect(result).toEqual({
            id: 1,
            email: 'test@test.com',
            password: 'test1234',
          });
    });

Nach dem Mocking wurde auch die Typisierung unterstützt, was das Schreiben von Einheitentests sehr einfach machte.

Jay
제이의 블로그
1인분이 목표인 초보 개발자
Jay
Relationale Datenmodellierung Relationale Datenmodellierung ist der Prozess, bei dem Informationen aus der realen Welt in Tabellen und Daten aufgeteilt werden. Dabei werden die Phasen Anforderungsanalyse, konzeptionelle Datenmodellierung, logische Datenmodellierung und physische Daten

8. April 2024

Konzeptionelles Datenmodell für das Kanban-Board-Projekt 1 Ich habe das Kanban-Board-Projekt, das eine Aufgabe für das Backend-Praktikum bei Wanted war, neu implementiert und ein konzeptionelles Datenmodell erstellt, um die relationale Datenmodellierung zu üben. Durch die Trennung von Entitäten, die Definition vo

9. April 2024

Konzeptionelles Datenmodellieren Konzeptionelles Datenmodellieren ist der Prozess, Entitäten zu trennen und die Beziehungen zwischen Entitäten in einem ERD darzustellen. Entitäten sind unabhängige Informationseinheiten, und Attribute sind die Daten, die eine Entität besitzt. Ein Bezeichn

8. April 2024

Welche Tests sollten bei der Entwicklung einer 1-Personen-App durchgeführt werden? Erfahren Sie, wie Sie die Prioritäten für Tests bei der App-Entwicklung setzen und eine effiziente Teststrategie entwickeln. Der Autor priorisiert Menschentests, Integrationstests, Unit-Tests und Akzeptanz-/Widget-Tests und betont die Zeiteffizienz. Entde
Alien Story
Alien Story
Alien Story
Alien Story
Alien Story

16. Mai 2024

[Effektives Java] Punkt 5: Verwenden Sie Dependency Injection anstelle von expliziten Ressourcen Wenn eine Klasse von externen Ressourcen abhängt, sollten Singleton- und statische Utility-Klassen vermieden werden. Durch Dependency Injection können Sie die Flexibilität, Wiederverwendbarkeit und Testbarkeit der Klasse verbessern. Die Verwendung des Fac
제이온
제이온
제이온
제이온

28. April 2024

[Effektives Java] Artikel 3. Garantieren Sie Singleton mit einem privaten Konstruktor oder einem Aufzähltyp Dieser Artikel stellt drei Methoden zur Implementierung des Singleton-Musters in Java vor (öffentliches statisches Mitglied, statische Fabrikmethode, Aufzähltyp) und erläutert die Vor- und Nachteile jeder Methode sowie Vorsichtsmaßnahmen bei der Serialisi
제이온
제이온
제이온
제이온

27. April 2024

[Effektives Java] Artikel 4. Verwenden Sie einen privaten Konstruktor, um die Instanziierung zu verhindern Bei Utility-Klassen, die nur statische Methoden und Felder enthalten, sollten Sie den Zugriffsschutzmodifizierer des Konstruktors auf private setzen, um die Instanziierung zu verhindern. Dadurch wird verhindert, dass Benutzer den Konstruktor für automatis
제이온
제이온
제이온
제이온

28. April 2024

Texttest Es gibt keine Vorschau von Durumis AI.
안민수
안민수
안민수
안민수

29. April 2024

[Next.js] Laufzeit-Umgebungsinjektion Erfahren Sie, wie Sie Umgebungsvariablen in Next.js nach dem Build-Zeitpunkt festlegen. Wir stellen die Installation von cross-env und die Änderung des Skripts vor, die auch Windows-Benutzer leicht nachvollziehen können. Dies ist nützlich für die Einstel
Sunrabbit
Sunrabbit
Sunrabbit
Sunrabbit

20. März 2024