Javascriptの単体テストを書く(power-assert)
はじめに
単体テストについてはE2Eを組む前段で用意してたことはあるのだけれど、真面目に書くことがなかったのでpower-assertを使ってテストコードを書くことに挑戦してみる。
参考
みんなのPowerAssert github.com
インストール
$ npm install mocha espower-loader intelli-espower-loader power-assert --save-dev
ディレクトリ構成
. ├── node_modules ├── package.json ├── src │ └── Calculator.js └── test └── test.js
対象&テストコード
Calculator.js
module.exports = class Calculator { constructor(name){ this.name = name; } plus(x, y){ return x + y; } minus(x, y){ return x - y; } divide(x, y){ return x / y; } };
test.js
const Calculator = require('../src/Calculator'); const calculator = new Calculator('riririusei99'); const assert = require('power-assert'); describe('Test plus', function(){ it('shoud return 3 when value is number', function(){ assert(calculator.plus(1,2) === 3); }); it('【ERROR SAMPLE】shoud return "12"', function(){ assert(calculator.plus("1","2") === 12); }); }); describe('Test minus', function(){ it('shoud return 3 when value is number', function(){ assert(calculator.minus(5,2) === 3); }); it('shoud return -2 when value is number', function(){ assert(calculator.minus(3,5) === -2); }); }); describe('Test devide', function(){ it('shuoud return 1 when value is number', function(){ assert(calculator.divide(5,5) === 1); }); it('shuoud return error when 0 divide', function(){ assert(calculator.divide(5,0) === Infinity); }); });
テスト実行
power-assertのREADMEを参考に実行する
$ node_modules/mocha/bin/mocha --require intelli-espower-loader test/test.js
こんな感じで出力される
おわりに
環境の準備は割とさっくりできた。
テストの書き方とかが大事なんだろうなぁというかんじなので、次回はもう少し複雑なコードに対してテストを書いてみるみたいなのをやってみたい。
CTFで作ったお遊びスクリプトとかがちょうど良さそう。