始めに
Meteorアプリを作るならTDDでやりたいと思い、テスト環境を調べてみました。
今ナウいのはvelocityというTestFrameworkだそうです。
というかただのtest runnerのようです。
jasmineとかmochaとか選べるようです。
なぜかjasmineが上手く動かなかったので、mochaで試すことにしました。
velocity+mochaを試す。
シンプルに該当アプリに以下のコマンドでパッケージ追加するだけです。
meteor add mike:mocha
拍子抜けもいいところっすね。
以下のように試してみます。
チュートリアル
$ meteor create --example leaderboard #sample作成
$ cd leaderboard
$ meteor add mike:mocha
Changes to your project's package version selections:
amplify added, version 1.0.0
coffeescript added, version 1.0.5
less added, version 1.0.12
mike:mocha added, version 0.5.1
practicalmeteor:chai added, version 1.9.2_3
practicalmeteor:loglevel added, version 1.1.0_3
velocity:core added, version 0.4.5
velocity:html-reporter added, version 0.3.2
velocity:node-soft-mirror added, version 0.2.4
velocity:shim added, version 0.1.0
velocity:test-proxy added, version 0.0.4
mike:mocha: Run mocha tests in the browser
mike:mocha
パッケージの追加でまとめてvelocityも入ってくれるみたいですね。
meteor
を叩いて起動しhttp://localhost:3000にアクセスします。
見慣れないアイコンが右上に表示されるようになり
クリックすると現在のテストの実行結果が反映されます。
現在は0件ですが図中の該当ボタンをクリックするとサンプルのテストが作成されます
以下のようにサンプルのテストが作成されました。
tree_leaderbord/tests
tests
└── mocha
├── client
│ └── sampleClientTest.js
└── server
└── sampleServerTest.js
3 directories, 2 files
sampleClientTest.js
if (!(typeof MochaWeb === 'undefined')){
MochaWeb.testOnly(function(){
describe("a group of tests", function(){
it("should respect equality", function(){
chai.assert.equal(5,5);
});
});
});
}
sampleServerTest.js
if (!(typeof MochaWeb === 'undefined')){
MochaWeb.testOnly(function(){
describe("Server initialization", function(){
it("should have a Meteor version defined", function(){
chai.assert(Meteor.release);
});
});
});
}
そもそもmochaがわからないのでそこからお勉強です・・・。