![translation](https://cdn.durumis.com/common/trans.png)
Ceci est un post traduit par IA.
Moquer le client Prisma pour les tests unitaires dans NestJS
- Langue de rédaction : Coréen
- •
-
Pays de référence : Tous les pays
- •
- Technologies de l'information
Choisir la langue
Texte résumé par l'IA durumis
- Il est important de supprimer les dépendances externes pour les tests unitaires.
- Vous pouvez moquer facilement le client Prisma de Prisma ORM à l'aide du package jest-mock-extended.
- L'écriture de tests unitaires est devenue plus facile après la moquerie.
En principe, les tests unitaires au niveau de l'application doivent être effectués dans un environnement isolé. Il est donc préférable d'éliminer les dépendances externes telles que les E/S réseau ou les bases de données qui pourraient affecter les résultats des tests.
Je suis en train d'écrire cet article pour enregistrer une méthode simple de mocking de Prisma Client pour les tests unitaires, car j'utilise Prisma ORM dans mon projet de jouet.
Installation du package jest-mock-extended
Le package recommandé dans la documentation officielle de Prisma est installé via la commande ci-dessus.
Mocking 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);
Exemple de code de test unitaire
describe('create', () => {
it('doit renvoyer les informations de l'utilisateur si la création de l'utilisateur réussit.', 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',
});
});
Après le mocking, le typage est également pris en charge, ce qui rend la rédaction de tests unitaires très pratique.