開発中のWEBアプリの時間演算モジュールで, ユニットテストに power-assert を使ったのでメモっておきます。
power-assertの環境構築
インストールはGitHubに記載の通り。
$ npm install --save-dev mocha power-assert intelli-espower-loader
$ mocha --version
2.0.1
power-assertを使ってみる
BMIを返す関数です。
module.exports.bmi = function (w, h) {
return w / (h * h)
}
テストを書きます。
"use strict";
var assert = require('power-assert');
var myModule = require('../bmi.js');
describe('myModule', function() {
describe('bmi()', function() {
it ('calculate bmi 170cm 65kg', function() {
assert(parseInt(myModule.bmi(65, 1.70)) === 22)
})
})
describe('bmi()', function() {
it ('calculate bmi 180cm 85kg', function() {
assert(parseInt(myModule.bmi(85, 1.80)) === 26)
})
})
describe('bmi()', function() {
it ('calculate bmi 175cm 60kg', function() {
assert(parseInt(myModule.bmi(60, 1.75)) === 16)
})
})
})
失敗した時はpower-assertが詳細が表示されます。
$ mocha --require intelli-espower-loader test/test-example.js
myModule
calc
✓ calculate bmi
calc
✓ calculate bmi
calc
1) calculate bmi
2 passing (22ms)
1 failing
1) myModule calc calculate bmi:
AssertionError: # test/test-example.js:19
assert(parseInt(myModule.bmi(60, 1.75)) === 16)
| | | |
| | | false
| | 19.591836734693878
19 Object{bmi:#function#}
[number] 16
=> 16
今の所フロントエンドのタスクランナーは Gulp, UIテストの方は Selenium にしてます。