ユーザのサインアップ、ログイン・ログアウトを実装できたので
いよいよ本格的に機能を作りこんでいきたいのですが、
やはりテストが無いと不安です。
Mocha
比較的シンプルそうなテストフレームワーク mocah を導入します。
1
|
$ npm install -g mocha --save-dev
|
さっそく動かしてみる.
1
2
|
$ mkdir test
$ touch test/test.js
|
1
2
3
4
5
6
7
8
9
|
var assert = require('chai').assert;
describe('Array', function () {
describe('#indexOf()', function () {
it('should return -1 when the value is not present', function () {
assert.equal(-1, [1, 2, 3].indexOf(5));
assert.equal(-1, [1, 2, 3].indexOf(0));
});
});
});
|
1
2
3
4
5
6
7
8
9
10
|
Array
#indexOf()
1) should return -1 when the value is not present
0 passing (14ms)
1 failing
1) Array #indexOf() should return -1 when the value is not present:
ReferenceError: assert is not defined
at Context.<anonymous> (test/test.js:4:7)
|
お、動いてるっぽい。
ちなみにアサーションには Chai を使っています。
1
|
var assert = require('chai').assert;
|
Chai は他にも expect
や should
を使った書き方もサポートしています。
should
や expect
は Rspec で使っていましたが冗長になりがちだったので、今回は assert を使ってみようと思います。
CI に乗せる
いつもの Travis-CI で。
以下の内容で .travis.yml
をリポジトリのルートに作る。
1
2
3
|
language: node_js
node_js:
- '5.9.0'
|
TravisCI は npm test
を叩いてテストするので、package.js
に以下を加える。
1
2
3
4
5
6
7
|
{
...
"scripts": {
"test": "mocha"
},
...
}
|
TravisCI でリポジトリを有効にしてビルド。README.md
にバッジを追記する。
1
2
3
4
5
6
7
8
9
10
11
12
13
|
......
$ npm test
> WitchCoder@0.0.0 test /home/travis/build/tac0x2a/WitchCoder
> mocha
login
/return
✓ should be return error when email is empty
✓ should be return error when name is empty
✓ login failed if user not found
✓ login failed if password is not matched
4 passing (14ms)
The command "npm test" exited with 0.
Done. Your build exited with 0.
|
動いてる!いい感じ〜