Test runner Node.js
- Node.js kini menyertakan fitur test runner bawaan
- Anda dapat menulis pengujian dengan mengimpor modul
node:test di file pengujian
- Menjalankan satu pengujian:
node --test tests/math.test.js
- Secara otomatis mendeteksi dan menjalankan file pengujian
- Dapat memverifikasi pengujian menggunakan modul
assert bawaan
- Dapat mengelompokkan dan mengelola pengujian terkait menggunakan test suite dan hook
Mocking native Node.js
- Node.js kini menyertakan fitur mocking native
- Fitur mocking yang biasanya disediakan framework pengujian lain kini dapat digunakan langsung di Node.js
- Fitur mocking dapat diimplementasikan menggunakan metode
mock dari modul node:test
Test coverage native Node.js
- Test coverage membantu memahami cakupan pengujian pada source code
- Mulai Node.js 20, tersedia fitur test coverage native
- Data test coverage dapat dibuat menggunakan flag
--experimental-coverage
- Laporan coverage dapat digunakan untuk mengidentifikasi area kode yang belum diuji
Mode watch Node.js
- Mode watch mendeteksi perubahan file secara real-time dan menjalankan ulang skrip secara otomatis
- Tidak memerlukan dependensi eksternal seperti Nodemon
- Dapat mendeteksi perubahan file dan menjalankan skrip secara otomatis menggunakan flag
--watch
Corepack Node.js
- Corepack berperan sebagai jembatan antara proyek dan package manager
- Anda dapat menentukan package manager yang akan digunakan proyek, dan Corepack akan mengelolanya secara otomatis
- Corepack dapat diaktifkan dengan perintah
corepack enable
Loader .env Node.js
- Mulai Node.js 20, tersedia fitur native untuk memuat environment variable dari file .env
- File .env dapat dimuat menggunakan flag
--env-file
- Anda dapat memuat beberapa file .env untuk mengatur berbagai environment
Dukungan import.meta Node.js
- Node.js v20.11.0 dan v21.2.0 mendukung
import.meta.filename dan import.meta.dirname
- Nama direktori dan path file bisa diambil dengan lebih mudah
Promise timer native Node.js
- Sejak Node.js v15, timer dapat digunakan dalam bentuk promise
setTimeout dan setInterval dapat digunakan sebagai promise untuk menulis kode asinkron yang lebih ringkas
Modul permission Node.js
- Fitur eksperimental untuk mengontrol akses resource pada aplikasi Node.js
- Akses ke file system, jaringan, environment variable, dan lainnya dapat dibatasi menggunakan flag
--experimental-permission
Modul policy Node.js
- Fitur keamanan untuk mencegah pemuatan kode berbahaya
- Anda dapat menentukan file kebijakan menggunakan flag
--experimental-policy dan mengontrol pemuatan modul
7 komentar
Tidak ada penyebutan
node --run. Mulai versi terbaru, skrip bisa dijalankan tanpa bergantung pada NPM. Proses start-up-nya puluhan kali lebih cepat.Kali ini sambil mengerjakan proyek tsboard, saya cukup banyak membandingkannya dengan runtime Bun. Node.js memang sangat bagus dalam banyak hal, tetapi (1) tidak mendukung TypeScript dan (2) soal kecepatan, dua hal ini masih terasa disayangkan. Saya juga merasa hal-hal seperti kompatibilitas dan fakta bahwa ia tidak terlalu pilih-pilih sumber daya hardware itu benar-benar luar biasa.
Jika Anda mempertimbangkan TypeScript, kecepatan eksekusi, dan sebagainya, coba pertimbangkan juga runtime Bun...!
Wah~ di artikel aslinya bahkan ada penyebutan tentang Jest juga ya.
Saya sempat mencoba memindahkan proyek kecil dari jest ke node.js, tapi dukungan fungsi assertion-nya terlalu minim jadi kurang bagus :(
Cepat sekali mengadopsi tren-tren terbaru ya..
Wah, dan mocking native juga!