INDEX
テストケースとは?

テストケースとは、特定の機能や関数が正しく動作するかを確認するための具体的なテスト内容です。
通常、テストケースでは「どの入力を与えるか」「どのような結果を期待するか」を決めておき、実際の結果が期待通りかを確認します。
JavaScriptでは、MochaやJestなどのテストフレームワークを使うことで、テストケースを自動で実行できます。
基本的なテストケースの書き方
テストケースを書くときは、基本的に次の流れで考えます。
- テストする関数や機能を用意する。
- 入力値を決める。
- 期待する結果を決める。
- 実際の結果と期待する結果を比較する。
たとえば、足し算を行う関数であれば、「2と3を渡したら5が返る」というように確認します。
Mochaを使った基本的なテストケースの書き方
Mochaでは、describe()とit()を使ってテストを構造化します。
describe():関連するテストをまとめる。it():具体的なテストケースを書く。
テスト対象のJavaScriptコード
function add(a, b) {
return a + b;
}
module.exports = add;
Mochaを使ったテストケースの例
const assert = require("assert");
const add = require("./add");
describe("add関数", function () {
it("2と3を渡すと5を返す", function () {
assert.strictEqual(add(2, 3), 5);
});
it("-1と1を渡すと0を返す", function () {
assert.strictEqual(add(-1, 1), 0);
});
});
この例では、add()関数に対して2つのテストケースを定義しています。
add(2, 3)が5を返すか確認しています。add(-1, 1)が0を返すか確認しています。
assert.strictEqual()は、実際の値と期待する値が厳密に等しいかを確認するためのメソッドです。
Jestを使った基本的なテストケースの書き方
Jestでは、test()やexpect()を使ってテストケースを書きます。
Jestはアサーション機能が標準で用意されているため、初めてテストを書く場合にも扱いやすいフレームワークです。
テスト対象のJavaScriptコード
function add(a, b) {
return a + b;
}
module.exports = add;
Jestを使ったテストケースの例
const add = require("./add");
test("2と3を渡すと5を返す", () => {
expect(add(2, 3)).toBe(5);
});
test("-1と1を渡すと0を返す", () => {
expect(add(-1, 1)).toBe(0);
});
この例では、expect()で実際の結果を指定し、toBe()で期待する値と一致するかを確認しています。
結果が期待した値と異なる場合、そのテストケースは失敗します。
テストケースを書く上での注意点
テストケースを書くときは、正常に動く場合だけでなく、失敗しやすいケースも確認することが大切です。
- 正常系を確認する: 想定どおりの入力で、期待した結果が返るか確認します。
- 異常系を確認する:
null、undefined、空文字など、想定外の入力を確認します。 - 境界値を確認する: 0、最大値、最小値など、条件の境目になる値を確認します。
- テスト名を分かりやすくする: 何を確認しているテストなのか、名前だけで分かるようにします。
- 1つのテストで多くを確認しすぎない: 1つのテストケースでは、できるだけ1つの目的に絞ります。
テストフレームワークの比較
MochaとJestはどちらもJavaScriptでよく使われるテストフレームワークですが、特徴に違いがあります。
| 特徴 | Mocha | Jest |
|---|---|---|
| 初期設定の簡単さ | 必要に応じてアサーションライブラリなどを組み合わせる | 多くの機能が標準で用意されている |
| アサーション | assertやChaiなどを利用することが多い |
expectが標準で使える |
| モック機能 | 外部ライブラリを組み合わせることが多い | 標準で利用できる |
| スナップショットテスト | 標準では対応していない | 標準で対応している |
| 向いている用途 | 自由に構成したいプロジェクト | 手軽にテストを始めたいプロジェクト |
現在の新規プロジェクトでは、設定が簡単なJestが選ばれることも多いです。一方で、既存の環境や細かいカスタマイズが必要な場合はMochaも有力な選択肢です。
初心者が覚えておきたいポイント
- テストケースは、入力と期待する結果を明確にして書きます。
- 正常系だけでなく、異常系や境界値も確認します。
- Jestは設定が少なく、初心者でも始めやすいです。
- Mochaは自由度が高く、必要なツールを組み合わせて使えます。
- テストは自動化することで、修正後の不具合を見つけやすくなります。
まとめ
- テストケースは、特定の機能が正しく動作するかを確認するための具体的なテストである。
- 入力値と期待する結果を決めて、実際の結果と比較する。
- Mochaでは
describe()とit()を使ってテストを構造化する。 - Jestでは
test()とexpect()を使って分かりやすくテストを書ける。 - 正常系、異常系、境界値を意識してテストケースを作成することが重要である。
- テストを自動化すると、コード変更による不具合を早く見つけやすくなる。