1

私が制御できない古い JS ファイル/モジュールの単体テストを作成しようとしています。

JS モジュールは、次のパターンを使用して構築されます...

var myModule = {
    myMethod:function() {
    }
};

次に、これをテストするために DOH テスト ハーネスを構築しようとしています。私は次のことを試しました...

require([
    "doh/runner",
    "../../myModules/myModule.js"
    ], function(doh) {
        console.log(doh);
        console.log(myModule);
    });

ファイルは正常に取得されているようですが、何も参照できません。「console.log(myModule);」undefined を返すだけです。

外部の非 Dojo モジュール JS ファイルを DOH テスト ハーネスに正しく含める方法を知っている人はいますか?

ありがとう

4

2 に答える 2

1

非推奨 ( Internを使用) であるため DOH を使用してはならない以外に、そこに表示されない理由はありませんmyModule。モジュール ID ではなくスクリプト アドレスを使用していますが、これは正しくありません。呼び出しで相対パスを使用していますがrequire、これも正しくありません。ロードしようとしているスクリプトは、コンソールに表示されるエラーをスローする必要があります。他の唯一の可能性は、何らかの方法でこのスクリプトにビルト レイヤーを組み込むことができたということです。このmyModule場合、スクリプト全体がクロージャーでラップされてしまうため、 usingvar fooはグローバル変数を定義しなくなりますfoo

于 2013-09-24T04:23:50.007 に答える
0

ステートメントmyModuleへの関数コールバックで宣言する必要があります。require

require([
    "doh/runner",
    "../../myModules/myModule"
], function(doh, myModule) { // <-- include myModule
    console.log(doh);
    console.log(myModule);
});

myModule.jsモジュールが返されることを確認してください。

于 2013-09-23T18:16:44.160 に答える