![translation](https://cdn.durumis.com/common/trans.png)
Ini adalah postingan yang diterjemahkan oleh AI.
Pilih Bahasa
Teks yang dirangkum oleh AI durumis
- Melepaskan dependensi eksternal sangat penting untuk unit testing.
- Anda dapat dengan mudah membuat mock Prisma Client Prisma ORM dengan menggunakan paket jest-mock-extended.
- Menulis unit test menjadi lebih mudah setelah membuat mock.
Secara umum, pengujian unit aplikasi dilakukan dalam kondisi terisolasi, jadi sebaiknya hilangkan ketergantungan eksternal seperti I/O jaringan atau basis data yang dapat memengaruhi hasil pengujian.
Dalam proyek mainan ini, saya menggunakan Prisma ORM, jadi saya akan membuat catatan tentang cara sederhana untuk me-mock Prisma Client untuk pengujian unit.
Instal paket jest-mock-extended
Paket yang direkomendasikan di dokumentasi resmi Prisma dapat diinstal menggunakan perintah di atas.
Mocking 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);
Contoh kode pengujian unit
describe('create', () => {
it('Harus mengembalikan informasi pengguna jika pembuatan pengguna berhasil.', 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',
});
});
Setelah mocking, tipe data juga didukung, sehingga penulisan pengujian unit menjadi sangat mudah.