2

「dojo/text!」は使えますか?インターン機能テストで?

テスト ページを JSON 文字列としてセットアップすることはできますが、理想的には、編集を容易にするためにファイル内の文字列を外部化したいと考えています。現時点では Intern を使い始めたばかりなので、可能なことを実験しているだけですが、ここに私のテストコードの始まりがあります)。

これは、使用されているコメント付きの「testData」変数で機能しますが、dojo/text で同じ文字列を提供しようとすると、現在失敗しています。声明。

コード:

define([
    'intern!object',
    'intern/chai!assert',
    'dojo/text!./firstTestPageConfig.json',
    'require'
], function (registerSuite, assert, PageConfig, require) {
    registerSuite({
        name: 'firstTest',

        'greeting form': function () {

            var testData = PageConfig;
            // var testData = '{"widgets":[{"name":"alfresco/menus/AlfMenuBar","config":{"widgets":[{"name":"alfresco/menus/AlfMenuBarPopup","config":{"id":"DD1","label":"Drop-Down","iconClass":"alf-configure-icon","widgets":[{"name":"alfresco/menus/AlfMenuGroup","config":{"label":"Group 1","widgets":[{"name":"alfresco/menus/AlfMenuItem","config":{"label":"Item 1","iconClass":"alf-user-icon"}},{"name":"alfresco/menus/AlfMenuItem","config":{"label":"Item 2","iconClass":"alf-password-icon"}}]}},{"name":"alfresco/menus/AlfMenuGroup","config":{"label":"Group 2","widgets":[{"name":"alfresco/menus/AlfMenuItem","config":{"label":"Item 3","iconClass":"alf-help-icon"}}]}}]}}]}}]}';
            var testPage = 'http://localhost:8081/share/page/tp/ws/unittest?testdata=';

            return this.remote
                .get(testPage + testData)
                .waitForElementByCssSelector('.alfresco-core-Page.allWidgetsProcessed', 5000)
                .elementById('DD1')
                    .clickElement()
                    .end()

       }
   });
});

私が得ているエラーはこれです:

/home/dave/ScratchPad/ShareInternTests/node_modules/intern/node_modules/dojo/dojo.js:742
                throw new Error('Failed to load module ' + module.mid + ' from ' + url + 
                          ^
Error: Failed to load module dojo/text from /home/dave/ScratchPad/ShareInternTests/dojo/text.js (parent: dojo/text!17!*)
at /home/dave/ScratchPad/ShareInternTests/node_modules/intern/node_modules/dojo/dojo.js:742:12
at fs.js:207:20
at Object.oncomplete (fs.js:107:15)

ローダー/パッケージ/マップの構成をいじってみましたが、成功しませんでした。dojo/text に渡しているファイルが見つからないかどうか (ただし、相対パスだけでなく完全なパスも試しました)、または Dojo モジュール自体が見つからないかどうかは、(少なくとも私には) エラー メッセージからはわかりません。

これ以上時間を費やす前に、私が試みていることが可能であることを確認したいのですが...明らかに、解決策や例は大歓迎です!!

どうもありがとう、デイブ

4

2 に答える 2

1

特定のエラーに対して: Dojo を使用する場合は、独自のプロジェクトに Dojo をインストールする必要があります。存在しないモジュールをロードしようとしています。からモジュールをロードして、Intern に付属のコピーを使用することもできますがintern/dojo、この内部ライブラリをロードする際の潜在的な注意事項を理解していない場合、これはお勧めできません。

一般に、機能テストで使用dojo/textするには: Geezer ブランチを使用するか、Dojo 1 ローダーを明示的に使用しない限り、これは現在不可能です。これは、そのモジュールが、Node.js で実行されているときに Dojo 1 ローダーによってのみ公開される機能に依存しているためです。完全に汎用的な別のテキスト ローダー モジュールが機能するか、自分でテキストを読み込んで読み込むことができintern/dojo/node!fsます。これについては、今後対処する予定です。

于 2013-11-18T18:16:44.060 に答える