ユニットテスト
中級読み方:ユニットテスト|英語:Unit Test
関数やモジュール単位で正しく動作するか確認するテストで、バグの早期発見に役立つよ。いつ使う? 関数を作ったとき「この入力でこの出力が返るか」を自動で確認したいときに使うよ。間違いやすいポイント: テストは「正常系」だけでなく「異常系」(エラーケース、空配列、null等)も書こう。テストが通っても全てのバグがないとは限らないよ。
やさしい説明
ユニットテストは、関数やモジュールが正しく動くか1つずつ確認するテストです。コードを変更したときに既存の機能が壊れていないか自動で確認できます。
テストの答え合わせを自動化するイメージです。「add(1, 2) の結果は 3 になるはず」と書いておけば、コードを変更するたびに自動で確認してくれます。
Jest、Vitest などのテストフレームワークを使って書きます。
具体例・使い方
// add.js
export function add(a, b) { return a + b; }
// add.test.js
import { add } from "./add";
test("1 + 2 = 3", () => {
expect(add(1, 2)).toBe(3);
});
test("0 + 0 = 0", () => {
expect(add(0, 0)).toBe(0);
}); いつ使う?
重要なロジック(計算、バリデーション、データ変換)を書いたとき、リファクタリング前に安全網として書くとき、チーム開発でコードの品質を保つときに使います。
間違いやすいポイント
❌ テストが実装の詳細に依存しすぎる
「入力と出力」をテストしましょう。内部の実装方法をテストすると、リファクタリングのたびにテストが壊れます。
よくある疑問
Q: ユニットテストのツールは?
A: JavaScriptではVitest(高速)、Jest(定番)、Mochaなどが代表的です。新規プロジェクトにはVitestがおすすめです。
Q: テストの書き方は?
A: test('1+2は3', () => { expect(add(1,2)).toBe(3); }); のように「期待する結果」を書きます。
Q: テストを書くメリットは?
A: コード変更時に既存機能が壊れていないか自動確認できます。リファクタリングが安心してできるようになります。