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

To jest post przetłumaczony przez AI.

제이의 블로그

Mockowanie klienta Prisma w NestJS dla testów jednostkowych

  • Język pisania: Koreański
  • Kraj referencyjny: Wszystkie kraje country-flag

Wybierz język

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

Tekst podsumowany przez sztuczną inteligencję durumis

  • Usunięcie zależności zewnętrznych jest ważne w celu przeprowadzenia testów jednostkowych.
  • Klient Prisma Prisma ORM można łatwo zmockować za pomocą pakietu jest-mock-extended.
  • Pisanie testów jednostkowych stało się łatwiejsze po zmockowaniu.

Zasadą jest przeprowadzanie testów jednostkowych aplikacji w izolacji, dlatego warto usunąć zewnętrzne zależności, takie jak operacje wejścia/wyjścia w sieci lub bazy danych, które mogą wpływać na wyniki testu.

Tworzę ten wpis, aby zarejestrować sposób prostego mockowania klienta Prisma w celu testowania jednostkowego, ponieważ w moim aktualnym projekcie zabawkowym używam Prisma ORM.


Instalacja pakietu jest-mock-extended

Powyższe polecenie instaluje pakiet zalecany w oficjalnej dokumentacji Prisma.


Mockowanie klienta Prisma

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);


 Przykładowy kod testu jednostkowego

  describe('create', () => {
    it('po udanym utworzeniu użytkownika należy zwrócić informacje o użytkowniku.', 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',
          });
    });

Po mockowaniu, dzięki obsłudze typów, pisanie testów jednostkowych było znacznie wygodniejsze.

Jay
제이의 블로그
1인분이 목표인 초보 개발자
Jay
Modelowanie danych koncepcyjnych projektu tablicy Kanban 1 Projekt tablicy Kanban, który był zadaniem dla stażu backendowego w Wanted, został ponownie zaimplementowany w celu ćwiczenia modelowania danych relacyjnych i przeprowadzono koncepcyjne modelowanie danych. Po zakończeniu procesu separacji jednostek, defin

9 kwietnia 2024

Modelowanie danych relacyjnych Modelowanie danych relacyjnych to proces dzielenia informacji ze świata rzeczywistego na tabele i dane, obejmujący etapy analizy wymagań, modelowania danych koncepcyjnych, modelowania danych logicznych i modelowania danych fizycznych. Diagram ERD z wykorz

8 kwietnia 2024

Modelowanie danych logicznych Modelowanie danych logicznych to proces przekształcania modelu danych koncepcyjnego do schematu relacyjnej bazy danych. Proces ten obejmuje przetwarzanie relacji 1:1, 1:N i N:M oraz zastosowanie normalizacji w celu zapewnienia spójności danych. Normalizac

9 kwietnia 2024

Jak testować aplikację rozwijaną przez jedną osobę? Dowiedz się, jak ustalić priorytety testów i stworzyć skuteczną strategię testowania aplikacji. Autor zaleca następujące priorytety: testy użytkowników, testy integracyjne, testy jednostkowe i testy akceptacyjne/widgetów, podkreślając znaczenie efektywnoś
Alien Story
Alien Story
Alien Story
Alien Story
Alien Story

16 maja 2024

[Efektywny Java] Element 5. Użyj wstrzykiwania zależności zamiast jawnego zarządzania zasobami Jeśli klasa zależy od zewnętrznych zasobów, lepiej nie używać singletonów ani statycznych klas narzędzi. Wstrzykiwanie zależności może poprawić elastyczność, ponowne użycie i łatwość testowania klasy, a wzorzec fabryki metod może prowadzić do bardziej wyd
제이온
제이온
제이온
제이온

28 kwietnia 2024

[Efektywny Java] Element 3. Gwarantuj singleton za pomocą prywatnego konstruktora lub typu wyliczeniowego W tym artykule przedstawiono trzy sposoby implementacji wzorca singleton w Javie (publiczne statyczne członkowie, statyczne metody fabryczne, typy wyliczeniowe) oraz opisano zalety i wady każdego z nich, a także środki ostrożności dotyczące serializacji.
제이온
제이온
제이온
제이온

27 kwietnia 2024

[Niebędąc programistą, przetrwanie w branży IT] 8. Jak napisać list motywacyjny? Przewodnik po pisaniu listów motywacyjnych dla osób, które nie mają wykształcenia informatycznego, a chcą znaleźć pracę jako programiści. Dowiesz się, jak szczegółowo opisać swoje doświadczenie i wysiłek w kontekście rozwoju oprogramowania w odniesieniu d
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자

30 marca 2024

Test tekstu Brak podglądu dla durumis AI.
안민수
안민수
안민수
안민수

29 kwietnia 2024

4 cenne rady, aby szybko dołączyć do PG Proces weryfikacji dołączenia do PG trwa od 2 do 3 tygodni. Główne przyczyny opóźnień to niedostateczne rozwoju usług, niedoskonałe procesy płatności i opóźnienia w przygotowaniu wymaganych dokumentów. Skrócenie czasu trwania procesu weryfikacji możliwe j
부트페이
부트페이
부트페이
부트페이

22 marca 2024