Node.jsテストランナー
- Node.jsには、基本のテストランナー機能が含まれるようになった
- テストファイルで
node:test モジュールをインポートしてテストを作成できる
- 単一テストの実行:
node --test tests/math.test.js
- テストファイルを自動検出して実行する
- 標準搭載の
assert モジュールを使ってテストを検証できる
- テストスイートとフックを使って、関連するテストをグループ化して管理できる
Node.jsネイティブモッキング
- Node.jsには、ネイティブなモッキング機能も含まれるようになった
- 他のテストフレームワークが提供していたモッキング機能を、Node.jsで直接使える
node:test モジュールの mock メソッドを使ってモッキング機能を実装できる
Node.jsネイティブテストカバレッジ
- テストカバレッジは、ソースコードのどこまでテストされているかを理解するのに役立つ
- Node.js 20からネイティブのテストカバレッジ機能が提供されている
--experimental-coverage フラグを使ってテストカバレッジデータを生成できる
- カバレッジレポートを通じて、テストされていないコード領域を特定できる
Node.jsウォッチモード
- ウォッチモードは、ファイル変更をリアルタイムで検知し、スクリプトを自動的に再実行する
- Nodemonのような外部依存は不要
--watch フラグを使ってファイル変更を検知し、スクリプトを自動実行できる
Node.js Corepack
- Corepackは、プロジェクトとパッケージマネージャーの橋渡しをする
- プロジェクトで使うパッケージマネージャーを明示すると、Corepackがそれを自動管理する
corepack enable コマンドでCorepackを有効化できる
Node.js .envローダー
- Node.js 20から、.envファイルから環境変数をネイティブに読み込む機能が提供されている
--env-file フラグを使って .env ファイルを読み込める
- 複数の .env ファイルを読み込んで、さまざまな環境設定に対応できる
Node.js import.metaサポート
- Node.js v20.11.0 と v21.2.0 で
import.meta.filename と import.meta.dirname をサポート
- ファイルパスやディレクトリ名をより簡単に取得できる
Node.jsネイティブタイマーPromise
- Node.js v15から、タイマーをPromise形式で使える
setTimeout と setInterval をPromiseとして使い、非同期コードをより簡潔に書ける
Node.js権限モジュール
- Node.jsアプリケーションのリソースアクセスを制御する実験的な機能
--experimental-permission フラグを使って、ファイルシステム、ネットワーク、環境変数などへのアクセスを制限できる
Node.jsポリシーモジュール
- 悪意あるコードの読み込みを防ぐセキュリティ機能
--experimental-policy フラグを使ってポリシーファイルを指定し、モジュールの読み込みを制御できる
7件のコメント
node --runへの言及がありませんね。最新バージョンからは NPM に依存せずにスクリプトを実行できます。起動が数十倍速いです。今回 tsboard プロジェクトを進めながら Bun ランタイムとあれこれ比較してみたのですが、Node.js は本当に全体的によいものの、(1) TypeScript をサポートしていないこと (2) 速度、この2点はやはりまだ惜しいです。互換性やハードウェア資源を特に選ばない点などは本当にすごいと思います。
TypeScript や動作速度などを重視するなら、Bun ランタイムも一度検討してみてください...!
うわ〜、原文でJestへの言及もありますね。
小さなプロジェクトで
jestからnode.jsに移行してみたのですが、検証関数のサポートがあまりにも不足していて、いまいちですね :(最新のトレンドをものすごく早く取り入れていますね..
そしてネイティブモッキングも!