dak ブログ

python、rubyなどのプログラミング、MySQL、サーバーの設定などの備忘録。レゴの写真も。

Node.js のプログラムの単体テスト

2021-10-10 18:03:09 | Node.js
Node.js のプログラムの単体テストを行う方法のメモ。

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)