3
  1. Node モジュールとして作成されていない、カスタム クライアント側 JavaScript のテスト スイートを作成して実行することはできますか? その場合、構成をどのように変更する必要がありますか?

  2. Intern 構成には loader セクションがあり、正しく取得できれば、ロードされるパッケージを指定します。カスタム JS コードを何らかの方法でここに含める必要がありますか?

  3. テスト スイートをどこに配置し、どのように表示する必要があるか (テスト スイートが Node パッケージに属しておらず、カスタム JS コードのみに属している場合)。つまり、どのように「ロード」して実行するのでしょうか?

私はノードの経験がありませんが、何らかの方法でそれを機能させようとしました。私の試みは次のようになりました:

$ node client.js config=tests/js/intern
Defaulting to "console" reporter
4

1 に答える 1

6

1.テスト モジュールは常に AMD モジュールとして作成する必要がありますが、必要なクライアント側コードをテストできます。テスト モジュール内で、AMD 以外のコードを他のモジュールと同様に依存関係として指定し、スクリプトが作成するグローバル変数にアクセスします。

define([
  'intern!tdd',
  'intern/chai!assert',
  'intern/order!myPackage/myFoo.js'
], function (tdd, assert /* note, no assignment here */) {
  tdd.suite('foo suite', function () {
    tdd.test('something in foo', function () {
      // accessing a global variable created by `myPackage/myFoo.js`
      assert.ok(window.myFoo, 'Global myFoo object should exist');
    });
  });
});

suites2.配列でテスト モジュールを指定することを除いて、これを機能させるために Intern 構成で明示的に何かを行う必要はありません。

3. テストが必要なクライアント側アプリケーションに推奨されるディレクトリ構造は、次のようになります。

/ - your entire application
    src/
        index.html - your app’s entry-point HTML
        app/ - your app package, containing application-specific JavaScript to be tested
            foo.js        - Some module `foo`
            tests/        - Intern tests for `app`
                foo.js    - Tests for `foo`
                intern.js - Intern configuration for `app`
    node_modules/
        intern/

もちろん、これはアプリケーションがすでにどのように設計されているかによって異なりますが、「ゼロから始める」アプローチから、これが一般的に推奨されるディレクトリ構造です。

于 2013-05-01T20:31:39.140 に答える