この記事は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を取得する