この記事は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をインストール。
インストールは簡単
1 | $ npm install jasmine-node -g |
このコマンドを実行するだけ。
テストコードはファイル名の末尾にspec.jsという名前をつけていればよい。
簡単に試しにテストコードを実行してみました。
ディレクトリ構造は下のような感じにしてみました。
1 2 3 4 5 | work ├src ソースコードを置く場所 │└person.js └spec テストコードを置く場所 └person.spec.js |
ソースコードとテストコードはこんな感じ
person.jsの中身
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | ( 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の中身
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | ( 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); }); }); })(); |
では実行してみます。
1 2 3 4 5 | $ jasmine-node work/spec/ .... Finished in 0.01 seconds 4 tests, 6 assertions, 0 failures, 0 skipped |
テストコードのディレクトリを指定すればそのディレクトリ内の*spec.jsに該当するファイルがテストコードとしてすべて実行されます。もちろんテストコードファイルを指定しての実行も可能です。
テストコードの書き方はjasmine-nodeのサイトで解説があります。
といわけで。テストコードがうまく動いたことを確認できました。
RSSを取得する