Node.js のプログラムの単体テストを行う方法のメモ。
nodeunit で node.js のプログラムの単体テストを行うことができます。
nodeunit のインストールは以下で行うことができます。
単体テストの対象のプログラムの Test1.js と単体テストのプログラムの test_test1.js を以下のディレクトリ構成で配置します。
Test1.js は以下のようなプログラムです。
単体テストのプログラムは、以下のようなプログラムです。
test.equal() は引数の2つの値が等しいかのアサーションです。
テストケースの最後では test.done() を実行します。
nodeunit での単体テストを行うには、単体テストのプログラムがあるディレクトリを引数に指定して nodeunit を実行します。
nodeunit で node.js のプログラムの単体テストを行うことができます。
nodeunit のインストールは以下で行うことができます。
sudo npm install -g nodeunit
単体テストの対象のプログラムの Test1.js と単体テストのプログラムの test_test1.js を以下のディレクトリ構成で配置します。
. ├── lib │ └── Test1.js └── test └── test_Test1.js
Test1.js は以下のようなプログラムです。
module.exports = class Test1 { constructor (str) { this.str = str; } add(str) { this.str += str; return this.str; } add2(str1, str2) { this.str += str1 + str2; return this.str; } }
単体テストのプログラムは、以下のようなプログラムです。
const Test1 = require('../lib/Test1'); module.exports = { 'test add': function (test) { let obj1 = new Test1('abc'); test.equal(obj1.add('def'), 'abcdef'); let obj2 = new Test1('uvw'); test.equal(obj2.add('xyz'), 'uvwxyz'); test.done(); }, 'test add2': function (test) { let obj1 = new Test1('012'); test.equal(obj1.add2('345', '678'), '012345678'); test.done(); } };
test.equal() は引数の2つの値が等しいかのアサーションです。
テストケースの最後では test.done() を実行します。
nodeunit での単体テストを行うには、単体テストのプログラムがあるディレクトリを引数に指定して nodeunit を実行します。
$ nodeunit test test_Test1 ? test add ? test add2 OK: 3 assertions (17ms)