6

Intern をテストして、テスト フレームワークに適しているかどうかを確認しようとしています。Intern で次のコードをテストしようとしています。

var HelloWorld;

HelloWorld = (function () {

  function HelloWorld (name) {
    this.name = name || "N/A";
  }

  HelloWorld.prototype.printHello = function() {
    console.log('Hello, ' + this.name);
  };

  HelloWorld.prototype.changeName = function(name) {
    if (name === null || name === undefined) {
      throw new Error('Name is required');
    }
    this.name = name;
  };

  return HelloWorld;

})();

exports = module.exports = HelloWorld;

ファイルは 'js-test-projects/node/lib/HelloWorld.js' にあり、Intern は 'js-test-projects/intern' にあります。Intern の 1.0.0 ブランチを使用しています。ファイルをインクルードしてテストを実行しようとすると、「デフォルトでコンソール レポーターに設定」した後に出力が得られません。ここにテストファイルがあります。

define([
  'intern!tdd',
  'intern/chai!assert',
  'dojo/node!../lib/HelloWorld'
], function (tdd, assert, HelloWorld) {
  console.log(HelloWorld);
});
4

1 に答える 1

7

1.次のディレクトリ構造を想定しています(質問に基づく):

js-test-projects/
    node/
        lib/
            HelloWorld.js   - `HelloWorld` Node module
        tests/
            HelloWorld.js   - Tests for `HelloWorld`
            intern.js       - Intern configuration file
    intern/

2. Intern 構成ファイルには、node実行するパッケージとスイートに関する情報が含まれている必要があります。

// ...

// Configuration options for the module loader
loader: {
    // Packages that should be registered with the loader in each testing environment
    packages: [ 'node' ]
},

// Non-functional test suite(s) to run
suites: [ 'node/tests/HelloWorld' ]

// ...

3. テスト ファイルはHelloWorld、次のように Intern のバージョンの Dojo を使用してロードする必要があります。

define([
    'intern!tdd',
    'intern/chai!assert',
    'intern/dojo/node!./node/lib/HelloWorld.js'
], function (tdd, assert, HelloWorld) {
    console.log(HelloWorld);
});

注:この AMD テストでは、ノード モジュールをロードするために Intern のバージョンの Dojo を使用する必要はありませんHelloWorldノードにノード モジュールが必要な他の AMD プラグインがある場合は、まったく問題ありません。

4. 最後に、Node.js 環境でテストを実行するには、ディレクトリclient.js内から次のコマンドを発行して、Intern のノード ランナーを使用します。intern

node client.js config=node/tests/intern
于 2013-05-09T19:42:54.167 に答える