【Node.js】power-assertを使ってみた

開発中の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 にしてます。