![translation](https://cdn.durumis.com/common/trans.png)
Esta é uma postagem traduzida por IA.
Selecionar idioma
Texto resumido pela IA durumis
- É importante remover dependências externas para testes unitários.
- Você pode simular o Prisma Client do Prisma ORM usando o pacote jest-mock-extended.
- A escrita de testes unitários ficou mais fácil após a simulação.
Como regra geral, os testes unitários de aplicativos devem ser realizados em isolamento, portanto, é aconselhável remover dependências externas que podem afetar o resultado do teste, como E/S de rede ou bancos de dados.
Estou escrevendo este post porque estou usando o Prisma ORM em um projeto de brinquedo e quero registrar como fazer mock do Prisma Client para fins de testes unitários.
Instalando o pacote jest-mock-extended
O pacote recomendado na documentação oficial do Prisma é instalado com o comando acima.
Fazendo Mock do 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);
Exemplo de código de teste unitário
describe('create', () => {
it('Deve retornar as informações do usuário quando a criação do usuário for bem-sucedida.', 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',
});
});
Depois de fazer mock, o suporte ao tipo também é fornecido, o que tornou a escrita de testes unitários muito mais fácil.