Node.js test runner
- Node.js artık yerleşik bir test runner özelliği içeriyor
- Test dosyalarında
node:test modülünü içe aktararak test yazabilirsiniz
- Tek bir testi çalıştırma:
node --test tests/math.test.js
- Test dosyalarını otomatik olarak algılar ve çalıştırır
- Yerleşik
assert modülü kullanılarak test doğrulamaları yapılabilir
- Test suite'leri ve hook'lar kullanılarak ilişkili testler gruplanıp yönetilebilir
Node.js yerel mocking
- Node.js artık yerel mocking özelliği içeriyor
- Diğer test framework'lerinin sunduğu mocking yetenekleri doğrudan Node.js içinde kullanılabilir
node:test modülündeki mock metodu kullanılarak mocking işlevi uygulanabilir
Node.js yerel test coverage
- Test coverage, kaynak kodun hangi kısmının test edildiğini anlamaya yardımcı olur
- Node.js 20 ile birlikte yerel test coverage özelliği sunuluyor
--experimental-coverage bayrağı kullanılarak test coverage verisi üretilebilir
- Coverage raporları sayesinde test edilmeyen kod alanları tespit edilebilir
Node.js watch modu
- Watch modu, dosya değişikliklerini gerçek zamanlı algılar ve script'i otomatik olarak yeniden çalıştırır
- Nodemon gibi harici bağımlılıklara ihtiyaç duyulmaz
--watch bayrağı kullanılarak dosya değişiklikleri algılanabilir ve script otomatik çalıştırılabilir
Node.js Corepack
- Corepack, proje ile paket yöneticisi arasında köprü görevi görür
- Projede kullanılacak paket yöneticisini belirtirsiniz, Corepack bunu otomatik olarak yönetir
corepack enable komutuyla Corepack etkinleştirilebilir
Node.js .env loader
- Node.js 20'den itibaren .env dosyalarından ortam değişkenlerini yerel olarak yükleme özelliği sunuluyor
--env-file bayrağı kullanılarak .env dosyası yüklenebilir
- Farklı ortamları yapılandırmak için birden fazla .env dosyası yüklenebilir
Node.js import.meta desteği
- Node.js v20.11.0 ve v21.2.0'da
import.meta.filename ve import.meta.dirname destekleniyor
- Dosya yolu ve dizin adını daha kolay alabilirsiniz
Node.js yerel timer promise'leri
- Node.js v15'ten itibaren timer'lar promise biçiminde kullanılabiliyor
setTimeout ve setInterval, promise olarak kullanılarak asenkron kod daha sade yazılabilir
Node.js permission modülü
- Node.js uygulamalarının kaynak erişimini kontrol etmeye yarayan deneysel bir özellik
--experimental-permission bayrağı kullanılarak dosya sistemi, ağ, ortam değişkenleri gibi erişimler sınırlandırılabilir
Node.js policy modülü
- Zararlı kodların yüklenmesini önlemeye yönelik bir güvenlik özelliği
--experimental-policy bayrağı kullanılarak policy dosyası belirtilebilir ve modül yükleme kontrol edilebilir
7 yorum
node --run'dan bahsedilmemiş. En yeni sürümlerden itibaren NPM'ye bağımlı olmadan script çalıştırmak mümkün. Açılış onlarca kat daha hızlı.Bu kez tsboard projesi üzerinde çalışırken Bun runtime ile epey çeşitli karşılaştırmalar yaptım; Node.js gerçekten her açıdan çok iyi olsa da (1) TypeScript desteğinin olmaması (2) hız, bu iki nokta hâlâ biraz eksik kalıyor. Uyumluluk ya da donanım kaynakları konusunda pek seçici olmaması gibi yönlerinin ise gerçekten etkileyici olduğunu düşünüyorum.
TypeScript, çalışma hızı gibi unsurları göz önünde bulunduruyorsanız Bun runtime'ını da bir kez değerlendirin...!
Vay canına~ Orijinal metinde Jest'ten de bahsedilmiş.
Küçük bir projede
jest->node.jsgeçişini denedim ama doğrulama fonksiyonu desteği çok yetersiz olduğu için pek beğenmedim :(En son trendleri inanılmaz hızlı benimsiyorlar..
Ve native mocking!