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

Esta es una publicación traducida por IA.

제이의 블로그

Burla de Prisma Client para pruebas unitarias en NestJS

Seleccionar idioma

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

Texto resumido por la IA durumis

  • Es importante eliminar las dependencias externas para las pruebas unitarias.
  • Puede simular Prisma Client de Prisma ORM simplemente usando el paquete jest-mock-extended.
  • La escritura de pruebas unitarias se ha vuelto más fácil después de la burla.

Las pruebas unitarias de la aplicación deben realizarse en un entorno aislado, por lo que es recomendable eliminar las dependencias externas, como la E/S de red, la base de datos, etc., que pueden afectar los resultados de las pruebas.

Esta vez, voy a utilizar Prisma ORM para el proyecto de juguete, por lo que estoy escribiendo para registrar cómo simular simplemente Prisma Client para las pruebas unitarias.


Instalación del paquete jest-mock-extended

Instale el paquete recomendado en la documentación oficial de Prisma con el comando anterior.


Simulación de 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);


 Ejemplo de código de prueba unitaria

  describe('create', () => {
    it('Si la creación del usuario tiene éxito, debe devolver la información del usuario.', 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',
          });
    });

Después de la simulación, también se admite el tipo, por lo que escribir pruebas unitarias fue muy conveniente.

Jay
제이의 블로그
1인분이 목표인 초보 개발자
Jay
Modelado de datos conceptual del proyecto Kanbanboard 1 El proyecto Kanbanboard, que fue un desafío de pasantía de backend en Wanted, se implementó nuevamente con el propósito de practicar el modelado de datos relacionales y se llevó a cabo un modelado de datos conceptual. Al pasar por el proceso de separación

9 de abril de 2024

Modelado de datos relacionales El modelado de datos relacionales es el proceso de dividir la información del mundo real en tablas y datos, y consiste en los siguientes pasos: análisis de requisitos, modelado de datos conceptual, modelado de datos lógico y modelado de datos físico. El E

8 de abril de 2024

Modelado de datos conceptual El modelado de datos conceptual es el proceso de separar las entidades y representar la relación entre las entidades como ERD. Una entidad es una unidad de información independiente, y un atributo es la data que posee la entidad. El identificador identifi

8 de abril de 2024

¿Qué pruebas se deben realizar para el desarrollo de una aplicación de una sola persona? Aprenda cómo establecer prioridades de prueba y crear una estrategia de prueba efectiva para el desarrollo de aplicaciones. El autor prioriza las pruebas de personas, las pruebas de integración, las pruebas unitarias y las pruebas de aceptación/widget en
Alien Story
Alien Story
Alien Story
Alien Story
Alien Story

16 de mayo de 2024

[Effective Java] Item 5. Utilice la inyección de dependencia en lugar de especificar recursos Si una clase depende de recursos externos, es mejor no usar singletons ni clases de utilidad estáticas. La inyección de dependencia puede mejorar la flexibilidad, la reutilización y la facilidad de prueba de la clase, y el uso del patrón de método de fábr
제이온
제이온
제이온
제이온

28 de abril de 2024

[Next.js] Inyección de entorno de tiempo de ejecución Descubre cómo configurar variables de entorno en Next.js después del tiempo de compilación. Te mostramos cómo instalar cross-env y modificar los scripts para que los usuarios de Windows también puedan seguirlos fácilmente. Este método se puede utilizar pa
Sunrabbit
Sunrabbit
Sunrabbit
Sunrabbit

20 de marzo de 2024

Prueba de texto No hay vista previa de durumis AI.
안민수
안민수
안민수
안민수

29 de abril de 2024

[Objetos] Capítulo 1. Objetos, diseño En el desarrollo de software, la práctica es más importante que la teoría, y un buen diseño ayuda a que el código sea fácil de entender y a que se adapte flexiblemente a los cambios. La orientación a objetos proporciona una forma de gestionar adecuadament
제이온
제이온
제이온
제이온

28 de abril de 2024

Crear una CLI genial con Rust Este artículo explica cómo implementar aplicaciones CLI con Rust. Utilizaremos las bibliotecas clap y ratatui para crear un programa CLI que incluya funciones de inicio de sesión y cierre de sesión. Cubriremos todos los aspectos del desarrollo de CLI basa
곽경직
곽경직
곽경직
곽경직
곽경직

13 de marzo de 2024