jasmine-nodeを使ってテスト

jasmineのnodejs版を使ってみました。
CoffeeScriptでもテストできそう。
jasmine自体使ったことないのでまずは基本から。


1.npmでインストール

$ npm install -g jasmine-node


2.プロジェクトフォルダの直下にlibとspecというフォルダを作成

$ cd myproject
$ mkdir lib
$ mkdir spec

libにテスト対象となる実コード、specにスペックファイルを置く。


3.簡単なサンプルを作成
lib/MyClass.js

exports.MyClass = (function(){
    return {
            list:[1,2,3]
    }
})();

spec/MySpecs.js

var MyClass = require('../lib/MyClass').MyClass;

describe('MyClass', function() {
  it('lengthプロパティで配列長を取得する事ができる', function() {
    expect(MyClass.list.length).toEqual(3);
  });
});

describeメソッド:クラス名など
itメソッド:テスト対象の振る舞い
expectメソッドの引数にテスト対象
toXXXXメソッドの引数に期待値を記述 https://github.com/pivotal/jasmine/wiki/Matchers


4.テスト実行

$ jasmine-node spec/MySpecs.js
Started
.

Finished in 0.001 seconds
1 test, 1 assertion, 0 failures


5.必要があれば初期化、終了処理など。
spec/MySpecs.js

var MyClass = require('../lib/MyClass').MyClass;

describe('MyClass', function() {
  beforeEach(function() {
  // 初期処理
  });
  it('テスト1', function() {
    expect(テスト対象).toEqual(評価値);
  });
  it('テスト2', function() {
    expect(テスト対象).toEqual(評価値);
  });
});

beforEach:各itメソッド呼び出しの前に毎回実行される
afterEach:各itメソッドが実行された直後に毎回実行される

次回CoffeeScriptでテスト。