1

反応アプリケーションのテスト スイートを構築しようとしています。アプリケーション内のコンポーネントは次を使用しますAudio

const audio = new Audio('beep.wav');
audio.play();

これはブラウザで動作しますが、これによると、node.js にはありません。したがって、酵素を使用してコンポーネントをレンダリングしようとすると、エラーが発生します。

ReferenceError: Audio is not defined

私はテストに慣れていませんが、これを回避する方法はありますか? どうにかしてオブジェクトをモックしてAudioの代わりにすることはできますか? 私は font-end/javascript 単体テストが初めてなので、まだトリックを学ぼうとしています。

4

1 に答える 1

0

2 つの選択肢があります。

  1. Audio オブジェクトをプロパティ + としてテスト コンポーネントに渡します。テスト中に、Sinon のスタブまたはスパイを作成し、偽の依存関係としてコンポーネントに渡します。
  2. バージョン 9.3.0 以降、jsDOM は Audio コンストラクターをサポートしているようですしたがって、テストでjsDOM を介してブラウザ環境をシミュレートできます。
于 2016-07-11T08:09:13.960 に答える