1. Ringkasan
- Berbagi cara membangun unit test dengan pendekatan Sociable Test (terhubung ke DB nyata)
- ORM seperti TypeORM memiliki masalah keamanan tipe, sehingga pengujian dengan DB nyata diperlukan
2. Solitary Test vs Sociable Test
- Perbandingan
- Solitary Test menguji secara independen dengan mengganti dependensi menggunakan mock (cepat, tetapi bisa berbeda dari lingkungan nyata)
- Sociable Test menguji bersama dependensi eksternal nyata (DB) sehingga dapat memperoleh keandalan lebih tinggi (lebih lambat, tetapi bisa menemukan masalah realistis lebih awal)
- Keterbatasan Solitary Test
- Dengan mocking, sulit menemukan secara sempurna masalah interaksi dengan DB nyata
- Masalah pemeriksaan tipe di TypeORM dapat menyebabkan runtime error
- Kebutuhan akan Sociable Test
- Dengan integrasi ke DB nyata, masalah query kompleks, transaksi, dan pengaturan relasi dapat diverifikasi
- Menyiapkan database pengujian untuk menjalankan uji isolasi data berbasis transaksi
- Kelebihan dan hal yang perlu diperhatikan pada DB Sociable Test
- Kelebihan: pengujian lebih andal, masalah terkait ORM terdeteksi lebih awal, ketidaksesuaian skema dapat diperiksa
- Perhatian: kecepatan pengujian menurun, pengaturan lingkungan lebih kompleks, perlu manajemen transaksi
3. Implementasi pengujian terhubung DB di NestJS
- Konfigurasi
- Mengatur koneksi ke test DB menggunakan MySQL
- Memanfaatkan transaksi untuk me-rollback perubahan pada setiap test
- Memanfaatkan lifecycle framework pengujian Jest
- Menggunakan beforeAll / beforeEach / afterEach / afterAll
- Menyiapkan inisialisasi dan koneksi DB, serta pengaturan mulai dan selesai transaksi
4. Kesimpulan
- Saat menulis unit test, sebaiknya gunakan kombinasi Solitary Test dan Sociable Test secara tepat
- Untuk mencegah masalah terkait ORM, Sociable Test dapat sangat membantu
Belum ada komentar.