前回のエントリーではローカル環境にCloud9 IDEインストールしました。
この完成度に震えが止まらない!Node.js史上最高のIDE、Cloud9をインストールしよう。
今回はNode.jsのユニットテストをやってみます。結構、トラップがありました。
テストケースを準備するには、左のメニューからTestを選んで、New>New Unit Testを選択します。
すると、こんなテンプレが開きます。
"use strict";
require("./support/paths");
var assert = require("assert");
//var module = require("./module");
module.exports = {
"test untitled 1" : function() {
//assert.equal(!true, false);
}
};
if (typeof module !== "undefined" && module === require.main) {
require("asyncjs").test.testcase(module.exports).exec()
}
注意するのは、4点。
- テスト対象がuser.jsだったら、テストケースのファイル名をuser_test.jsとすること。(これによってテストケースを保存すると自動でテストが実行されます。)
- 最初のrequire("./support/paths")は、絶対パスにすること。(環境変数でなんとかなるのかもしれませんが。)
- テストの名前の最初は、「test 〜」で始めること。(頭文字が小文字のt以外で始まるテストが認識されません。)
- 15行目の module===require.main の条件は削除すること。
最初のrequireのパスのままですと、以下のようにmodule見つけられないよ!とエラーで怒られます。
node.js:134
throw e; // process.nextTick error, or 'error' event on first tick
^
Error: Cannot find module './support/paths'
at Function._resolveFilename (module.js:326:11)
at Function._load (module.js:271:25)
at require (module.js:355:19)
at Object. (/Users/inouetomoyuki/Dropbox/Projects/node/cloud9_sample/user_test.js:2:1)
at Module._compile (module.js:411:26)
at Object..js (module.js:417:10)
at Module.load (module.js:343:31)
at Function._load (module.js:302:12)
at Array.<anonymous> (module.js:430:10)
at EventEmitter._tickCallback (node.js:126:26)
注意して作ったテストケースがこちら
"use strict";
require("/Users/inouetomoyuki/Dropbox/Projects/node/cloud9/cloud9/support/paths");
var assert = require("assert");
var module = require("./models/user.js");
module.exports = {
"test of はじめての" : function() {
assert.equal(!true, false);
}
};
if (typeof module !== "undefined") {
require("asyncjs").test.testcase(module.exports).exec()
}
テスト対象は、modelsフォルダを作って、user.js の空ファイルを置いただけ。
Test PanelのRun testをクリックするか、uset_test.jsを保存するとテストが実行されます。
assert.equal(!true, false) ですのでテストが通りました。やっとプロジェクトを開始できます。





0 件のコメント:
コメントを投稿