![translation](https://cdn.durumis.com/common/trans.png)
Esta es una publicación traducida por IA.
Burla de Prisma Client para pruebas unitarias en NestJS
- Idioma de escritura: Coreano
- •
-
País de referencia: Todos los países
- •
- Tecnología de la información
Seleccionar idioma
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.