Testing Dasar dengan Jest
Penjelasan
Berbeda dari Express yang butuh setup testing manual dari nol, NestJS SUDAH mengonfigurasi Jest sejak project dibuat (nest new) — file *.spec.ts untuk unit test tiap Service/Controller, folder test/ untuk e2e test. Testing module (Test.createTestingModule()) menyediakan cara mock Dependency Injection dengan mudah.
Contoh Konsep
// produk.service.spec.ts
import { Test } from '@nestjs/testing';
import { ProdukService } from './produk.service';
describe('ProdukService', () => {
let service: ProdukService;
beforeEach(async () => {
const module = await Test.createTestingModule({
providers: [ProdukService],
}).compile();
service = module.get(ProdukService);
});
it('findAll() harus mengembalikan array', () => {
expect(Array.isArray(service.findAll())).toBe(true);
});
});
// Jalankan lewat terminal: npm run test
Praktikum
Tulis file artikel.service.spec.ts dengan test case yang memastikan ArtikelService.findAll() mengembalikan array kosong saat pertama kali dibuat (belum ada data ditambahkan).
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Test.createTestingModule() memungkinkan kamu mendaftarkan MOCK provider (pengganti palsu) alih-alih Service/Repository asli — sangat berguna untuk unit test yang tidak boleh benar-benar menyentuh database sungguhan, cukup daftarkan versi tiruan yang mengembalikan data dummy.