Dit is een door AI vertaalde post.
Prisma Client-mocken voor unit-tests in NestJS
- Taal van de tekst: Koreaans
- •
- Referentieland: Alle landen
- •
- Informatietechnologie
Selecteer taal
Samengevat door durumis AI
- Het is belangrijk om externe afhankelijkheden te verwijderen voor unit-tests.
- U kunt Prisma Client van Prisma ORM eenvoudig mocken met behulp van het pakket jest-mock-extended.
- Het schrijven van unit-tests is na het mocken gemakkelijker geworden.
Het is een principe om applicatietests uit te voeren in isolatie. Daarom is het het beste om externe afhankelijkheden zoals netwerk-I/O en databases te verwijderen, omdat deze de testresultaten kunnen beïnvloeden.
Ik ben van plan om Prisma ORM te gebruiken voor mijn speelgoedproject. Daarom wil ik deze post schrijven om vast te leggen hoe ik Prisma Client eenvoudig kan mocken voor unit-tests.
Installeer het jest-mock-extended pakket
Het pakket dat wordt aanbevolen in de officiële Prisma-documentatie kan worden geïnstalleerd met de bovenstaande opdracht.
Prisma Client mocken
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);
Voorbeeldcode voor unit-tests
describe('create', () => {
it('Moet de gebruikersinformatie retourneren als het succesvol is om een gebruiker te maken.', 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',
});
});
Na het mocken wordt type-ondersteuning ook geleverd, wat unit-tests veel gemakkelijker maakt.