この記事は2013/10/23のすごい広島 #23の記事です。
今回はnode.jsのテスト環境をMacにインストールしました。
まず、Macにnode.jsをインストールしてなかったので、以前書いた記事「CentOS 6.4 x64 にnvmでnode.jsをインストールする」を参考にMacにnode.jsをインストールしました。
以前の記事ではCentOSですが、Macでも同じようにインストールできます。
次に、node.jsのテスティングフレームワークであるjasmine-nodeをインストール。
インストールは簡単
$ npm install jasmine-node -g
このコマンドを実行するだけ。
テストコードはファイル名の末尾にspec.jsという名前をつけていればよい。
簡単に試しにテストコードを実行してみました。
ディレクトリ構造は下のような感じにしてみました。
work ├src ソースコードを置く場所 │└person.js └spec テストコードを置く場所 └person.spec.js
ソースコードとテストコードはこんな感じ
person.jsの中身
(function() {
function Person() {
this.name = '';
this.age = 0;
};
Person.prototype.getName = function() {
return this.name;
};
Person.prototype.setName = function(name) {
this.name = name;
};
Person.prototype.getAge = function() {
return this.age;
};
Person.prototype.setAge = function(age) {
this.age = age;
};
exports.Person = Person;
})();
person.spec.jsの中身
(function() {
// テストするソースの読み込み
var PersonJs = require('../src/person');
// テストするクラス
var Person = PersonJs.Person;
// テストコード
describe('Person Class', function(){
it('exist Person Class', function() {
expect(Person).toBeDefined();
});
it('create Person Object', function() {
var person = new Person();
expect(person).toNotEqual(null);
});
it('init Person Object', function() {
var person = new Person();
var name = person.getName();
expect(name).toEqual('');
var age = person.getAge();
expect(age).toEqual(0);
});
it('setter test', function() {
var person = new Person();
var name = 'Toro_kun';
var age = 0x20;
person.setName(name);
expect(person.getName()).toEqual(name);
person.setAge(age);
expect(person.getAge()).toEqual(age);
});
});
})();
では実行してみます。
$ jasmine-node work/spec/ .... Finished in 0.01 seconds 4 tests, 6 assertions, 0 failures, 0 skipped
テストコードのディレクトリを指定すればそのディレクトリ内の*spec.jsに該当するファイルがテストコードとしてすべて実行されます。もちろんテストコードファイルを指定しての実行も可能です。
テストコードの書き方はjasmine-nodeのサイトで解説があります。
といわけで。テストコードがうまく動いたことを確認できました。
RSSを取得する