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

Это сообщение переведено AI.

제이의 블로그

Имитация Prisma Client для юнит-тестирования в NestJS

  • Язык написания: Корейский
  • Базовая страна: Все страны country-flag

Выбрать язык

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

Текст, резюмированный ИИ durumis

  • Важно избавиться от внешних зависимостей для юнит-тестирования.
  • Вы можете легко имитировать Prisma Client Prisma ORM с помощью пакета jest-mock-extended.
  • Написание юнит-тестов стало удобнее после имитации.

Как правило, модульные тесты проводятся в изолированной среде, поэтому рекомендуется устранить внешние зависимости, такие как сетевой ввод-вывод или базы данных, которые могут повлиять на результаты тестирования.

В этом проекте я использую Prisma ORM в своем тестовом проекте, поэтому я хотел бы записать, как просто имитировать Prisma Client для модульного тестирования.


Установка пакета jest-mock-extended

В официальной документации Prisma рекомендуется установить пакет с помощью этой команды.


Имитация Prisma Client

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


 Пример кода модульного теста

  describe('create', () => {
    it('При успешном создании пользователя необходимо вернуть информацию о пользователе.', 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',
          });
    });

После имитации тип также поддерживается, что значительно упрощает написание модульных тестов.

Jay
제이의 블로그
1인분이 목표인 초보 개발자
Jay
Концептуальное моделирование данных для проекта Канбан-доски 1 Я реализовал проект Канбан-доски, который был заданием для стажировки бэкенд-разработчика в Wanted, в качестве упражнения по реляционному моделированию данных. В ходе работы я провел концептуальное моделирование данных. Благодаря этапам разделения сущнос

9 апреля 2024 г.

Моделирование реляционных данных Моделирование реляционных данных — это процесс разделения информации из реального мира на таблицы и данные, который включает в себя этапы анализа требований, концептуального моделирования данных, логического моделирования данных и физического моделировани

8 апреля 2024 г.

Концептуальное моделирование данных Концептуальное моделирование данных - это процесс разделения сущностей и представления отношений между ними в виде ERD. Сущность - это независимая единица информации, а атрибут - это данные, которыми обладает сущность. Идентификатор однозначно идентифицир

8 апреля 2024 г.

Разработка приложения в одиночку: какие тесты нужно проводить? Узнайте, как определить приоритеты тестирования и разработать эффективную стратегию тестирования при разработке приложения. Автор рекомендует устанавливать приоритеты в следующем порядке: тестирование людьми, интеграционное тестирование, модульное тестиро
Alien Story
Alien Story
Alien Story
Alien Story
Alien Story

16 мая 2024 г.

[Эффективная Java] Элемент 6. Избегайте ненужного создания объектов Руководство по минимизации ненужного создания объектов в Java. Для неизменяемых объектов, таких как String, Boolean, рекомендуется использовать литералы, а для регулярных выражений – кэшировать экземпляры Pattern. Кроме того, автоупаковка может привести к
제이온
제이온
제이온
제이온

28 апреля 2024 г.

Тест статьи У durumis AI нет предварительного просмотра.
안민수
안민수
안민수
안민수

29 апреля 2024 г.

[Next.js] Внедрение переменных среды во время выполнения Узнайте о способах настройки переменных среды в Next.js после сборки. Мы расскажем, как установить cross-env и внести изменения в скрипт, чтобы это было легко сделать даже для пользователей Windows. Это полезно для настройки различных переменных среды, та
Sunrabbit
Sunrabbit
Sunrabbit
Sunrabbit

20 марта 2024 г.

Настройка среды Arduino #1. Установка Arduino IDE и запуск примера Blink В этой статье объясняется, как установить Arduino IDE и загрузить пример Blink на плату Arduino Uno. Мы рассмотрим необходимые материалы, такие как ПК, Arduino Uno, USB-кабель, а также пошагово объясним, как выбрать плату и порт в Arduino IDE, как загрузи
Lucy Archive
Lucy Archive
Arduino Uno, USB-кабель A/B
Lucy Archive
Lucy Archive

11 июня 2024 г.

[Observability] Проблемы с инструментом сбора журналов Vector Vector — инструмент сбора и обработки журналов, разработанный DataDog, написан на Rust, что делает его более удобным для написания кода преобразования журналов, чем Otel, и поддерживает интеграцию с Loki в среде Kubernetes с помощью Helm. Однако процесс и
Sunrabbit
Sunrabbit
Sunrabbit
Sunrabbit
Sunrabbit

9 марта 2024 г.