![translation](https://cdn.durumis.com/common/trans.png)
Questo è un post tradotto da IA.
Mocking Prisma Client per test unitari in NestJS
- Lingua di scrittura: Coreana
- •
-
Paese di riferimento: Tutti i paesi
- •
- Tecnologia dell'informazione
Seleziona la lingua
Testo riassunto dall'intelligenza artificiale durumis
- È importante rimuovere le dipendenze esterne per i test unitari.
- È possibile creare un mock di Prisma Client di Prisma ORM in modo semplice utilizzando il pacchetto jest-mock-extended.
- La creazione di un mock ha semplificato la scrittura dei test unitari.
In linea di principio, i test unitari delle applicazioni dovrebbero essere eseguiti in modo isolato, quindi è consigliabile rimuovere le dipendenze esterne, come I/O di rete o database, che potrebbero influenzare i risultati del test.
In questo progetto, poiché ho utilizzato Prisma ORM per il mio progetto di gioco, ho deciso di scrivere questo articolo per registrare come simulare in modo semplice Prisma Client per i test unitari.
Installazione del pacchetto jest-mock-extended
Installa il pacchetto consigliato nella documentazione ufficiale di Prisma con il comando precedente.
Simulazione di 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);
Esempio di codice di test unitario
describe('create', () => {
it('Se la creazione dell'utente ha successo, dovrebbe restituire le informazioni dell'utente.', 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',
});
});
Dopo la simulazione, il supporto del tipo è disponibile, il che ha reso la scrittura di test unitari molto più conveniente.