3

tested.jsIntern を使用して、別のモジュールに依存しているモジュールの 1 つを単体テストしようとしていますdependency.js。私は Browserify を使用しているためtested.js、次の行が含まれています。

var dep = require('./lib/dependency.js');

Intern は次のエラーをスローします。

Warning: Error: Attempt to require unloaded module lib/dependency.js

これは私のテストファイルの始まりです:

define([

    'intern!object',

    'intern/chai!assert',

    'src/js/tested'

], function (registerSuite, assert, tested) {

    registerSuite({
            // ... 

私のインターン構成ファイルは、デフォルトの Dojo ローダーを使用しています。代わりに RequireJS を使用してみましたが、正しく動作させることができませんでした (Intern では、代替の AMD ローダーの使用に関して進行中の問題があるようです: https://github.com/theintern/intern/issues/147https://github .com/theintern/intern/pull/132#issuecomment-33403157 )。

Intern に必要な依存関係を適切にロードさせるにはどうすればよいですか?

編集: 私は grunt-browserify を使用していますが、Browserified されていないモジュールの単体テストを行っています。「require」を使用している理由を説明するために、Browserify についてのみ言及しました。

4

1 に答える 1

4

CJS/Node.js モジュールを Browserify で実行せずにブラウザにロードすることはできません。それが Browserify の全体的な目的です。モジュールを事前にブラウザ化するか、アプリケーションで CJS モジュールの代わりに AMD モジュールを使用するように切り替えるか、モジュールをオンザフライで変換するプロキシを導入する必要があります。

Intern を介して Node.js に CJS モジュールをロードしようとしている場合は、intern/dojo/nodeそのロードを容易にするためにモジュールを使用する必要があります。

define([

    'intern!object',

    'intern/chai!assert',

    'intern/dojo/node!src/js/tested'

], function (registerSuite, assert, tested) {

    registerSuite({
            // ... 

これに関する詳細は、ドキュメントのAMD 以外のコードのテストセクションを参照してください。

于 2014-02-19T17:06:45.630 に答える