![translation](https://cdn.durumis.com/common/trans.png)
Bu, AI tarafından çevrilen bir gönderidir.
Dil Seç
Text summarized by durumis AI
- Birim testleri için dış bağımlılıkları kaldırmak önemlidir.
- Prisma ORM'nin Prisma Client'ını jest-mock-extended paketini kullanarak kolayca taklit edebilirsiniz.
- Taklit ettikten sonra birim testlerini yazmak daha kolay hale geldi.
Uygulama birim testlerinin izole bir şekilde gerçekleştirilmesi ilkesidir, bu nedenle test sonuçlarını etkileyebilecek ağ G/Ç'si veya veritabanı gibi harici bağımlılıklar kaldırılmalıdır.
Bu sefer oyuncak projemde Prisma ORM kullanmaya karar verdim, bu nedenle birim testleri için Prisma Client'ı basitçe taklit etme yöntemini bulup kaydetmek için bunu yazıyorum.
jest-mock-extended paketini yükleme
Prisma resmi belgesinde de önerilen paketi yukarıdaki komutla kurun.
Prisma Client taklidi
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);
Birim test örnek kodu
describe('create', () => {
it('Kullanıcı oluşturma başarılı olursa kullanıcı bilgilerini döndürmelidir.', async () => {
// Düzenle
const newUser = {
email: 'test@test.com',
password: 'test1234',
};
prismaMock.user.create.mockResolvedValue({
id: 1,
email: 'test@test.com',
password: 'test1234',
});
// Eylem
const result = await service.create(newUser);
// Doğrula
expect(result).toEqual({
id: 1,
email: 'test@test.com',
password: 'test1234',
});
});
Taklit ettikten sonra, tür desteği de sağlandığı için birim testi yazmak oldukça kolaydı.