- モジュールのスタブ化:
他のモジュールの動作をシミュレートするために、スタブを使用することができます。スタブは、モジュールの代替実装であり、テスト中にそのモジュールの関数やメソッドの振る舞いを制御します。以下は、
moduleA
とmoduleB
という2つのモジュールを要求するモジュールのテストの例です。
- モジュールのモック化:
モジュールのモック化は、モジュールの実際の動作を再現するために使用されます。モック化されたモジュールは、テスト中にモジュールの関数やメソッドを監視し、呼び出しや戻り値を追跡します。以下は、
moduleC
というモジュールを要求するモジュールのテストの例です。
// モジュールのモック化
jest.mock('./moduleC');
// テストケース
test('テストケース', () => {
// モック化された関数の振る舞いを設定
moduleC.someFunction.mockReturnValue('mocked value');
// テスト対象のモジュールを呼び出し
const result = require('./myModule')();
// 結果のアサーション
expect(result).toBe('expected value');
});
- グローバルオブジェクトのモック化: グローバルオブジェクトをモック化するには、以下の手順に従います。
// グローバルオブジェクトのモック化
const originalConsoleLog = console.log;
console.log = jest.fn();
// テストケース
test('テストケース', () => {
// テスト対象のコードを実行
myFunction();
// グローバルオブジェクトのモック化されたメソッドの呼び出しをアサート
expect(console.log).toHaveBeenCalledWith('expected value');
});
// テスト終了時にグローバルオブジェクトを元に戻す
afterAll(() => {
console.log = originalConsoleLog;
});
これらの方法を使用することで、他のモジュールの依存関係やグローバルオブジェクトをモック化しながら、Node.jsモジュールのユニットテストを効果的に行うことができます。これにより、モジュールの独立性を保ちつつ、テストの信頼性と保守性を向上させることができます。