Ez egy AI által fordított bejegyzés.
Egységtesztelés a Prisma Clienttel a NestJS-ben
- Írás nyelve: Koreai
- •
- Referencia ország: Minden ország
- •
- Informatika
Válasszon nyelvet
A durumis AI által összefoglalt szöveg
- A külső függőségek eltávolítása fontos az egységteszteléshez.
- A Prisma ORM Prisma Client-jét egyszerűen mockolhatja a jest-mock-extended csomag használatával.
- A mockolás után az egységtesztek írása egyszerűbbé vált.
Az alkalmazás egységtesztjének elvégzése során az a cél, hogy elkülönítve végezzük, ezért célszerű eltávolítani az olyan külső függőségeket, mint a hálózati I/O vagy az adatbázis, amelyek befolyásolhatják a teszt eredményét.
Ebben a cikkben bemutatjuk, hogyan lehet egyszerűen mockolni a Prisma Client-et egységtesztek során, mivel a jelenlegi játékprojektünkben a Prisma ORM-t használjuk.
jest-mock-extended csomag telepítése
A Prisma hivatalos dokumentációjában is ajánlott csomagot a fenti paranccsal telepíthetjük.
Prisma Client mockolása
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);
Egységteszt kód példa
describe('create', () => {
it('Sikeres felhasználó létrehozás esetén vissza kell adnia a felhasználói adatokat.', async () => {
// Előkészítés
const newUser = {
email: 'test@test.com',
password: 'test1234',
};
prismaMock.user.create.mockResolvedValue({
id: 1,
email: 'test@test.com',
password: 'test1234',
});
// Művelet
const result = await service.create(newUser);
// Állítás
expect(result).toEqual({
id: 1,
email: 'test@test.com',
password: 'test1234',
});
});
A mockolás után a típusok támogatása is elérhetővé válik, ami megkönnyíti az egységtesztek írását.