スポンサードリンク

前置き

この記事は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のサイトで解説があります。

といわけで。テストコードがうまく動いたことを確認できました。

スポンサードリンク