ES6 クラスのモック
Jest は、テストしたいファイルにインポートした ES6 クラスをモックすることもできます。
ES6 クラスというのは、いくつかの糖衣構文を加えたコンストラクタ関数です。 したがって、ES6 クラスのモックは、何らかの関数であるか、もう一つの ES6 クラス (繰り返しますが、これは別の関数です) になります。 そのため、モック関数を使用することでモックを作成できます。
ES6 クラスの例
具体例として、音楽ファイルを再生するクラス SoundPlayer
とそのクラスを使用する消費者クラス SoundPlayerConsumer
について考えてみましょう。 SoundPlayerConsumer
のテスト内で、SoundPlayer
クラスをモックするには、次のようなコードを書きます。
sound-player.js
export default class SoundPlayer {
constructor() {
this.foo = 'bar';
}
playSoundFile(fileName) {
console.log('Playing sound file ' + fileName);
}
}
sound-player-consumer.js
import SoundPlayer from './sound-player';
export default class SoundPlayerConsumer {
constructor() {
this.soundPlayer = new SoundPlayer();
}
playSomethingCool() {
const coolSoundFileName = 'song.mp3';
this.soundPlayer.playSoundFile(coolSoundFileName);
}
}