エクスポートされた関数を含む2つのモジュールがあります。 "ModuleB"は "ModuleA"の関数を使用します。今、 "ModuleB"をテストし、 "ModuleA"から使用された関数をモックしたいと思います。モックのモジュール内でのエクスポート機能
私はバベルでES6を使用します。テストのために私はカルマとジャスミンを使います。
私はbabel-rewireとinject-loaderを使ってみましたが、うまくいきません。私はこのすべてに新しいことがあります。私はちょうど何か間違っていると思います。だから、どんな助けもありがとう!
moduleA.js
export function getResult() {
return realResult;
}
moduleB.js
import * as ModuleA from './moduleA'
export function functionToTest() {
let result = ModuleA.getResult();
// do stuff with result which I want to test
}
私のテスト
it("does the right thing",() => {
// I tried using rewire, but this gives me an exception:
ModuleB.__Rewire__('ModuleA', {
getResult:() => {
return fakeResult;
}
});
let xyz = ModuleB.functionToTest(canvas, element);
});
これはes6とどのように機能しますか? – Ria
確かに、私があなたのために作ったこの例を見てください。ライブラリがrequireと一緒に使われるようにしたというのは難しいことですから、関数をモックするテストではimportを要求するモジュールを呼び出す必要があります。 [例を参照](https://repl.it/Cjo4/0) – damianfabian
ありがとう!今私はそれを使用する方法を理解しています。しかし、私はまだいくつかの問題を抱えています: 'npm install mockery 'を介してインストールし、' mock = require( 'mockery')'を介して '模擬作 'を作成しました。テストを実行するとエラーが発生しました。エラーが発生しました:./~/mockery/mockery.js モジュールが見つかりません:エラー:モジュール 'module'を解決できません。これは何ですか? – Ria