Study
NestJS

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).

Editor Latihan

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.