[めも]mochaとchaiの使い方


ユニットテストって何?って人向けのmochaとchaiの使い方 を見ていて、
MochaとChaiの事が気になったので、簡単な使いかたをメモ。

フォルダ構成 (Nodeが動く環境用)

/
L package.json
L /test

package.json (抜粋)

"scripts": {
"test": "mocha"
},

テスト用のコードは、/test 直下に置きます。
(mochaの自動検索対象は、/test直下のみ。)

Visual Studio Codeにnpm用の拡張機能を入れておくと、
Ctrl+R Tでテストが実行できるので便利!
(npm run-script test testが呼ばれます。)

参照:
Mocha: Getting Started

以上! ・・で終わってもよいのですが、以下おまけ。

Chaiの使いどころ:assert以外のものも使える

Mochaに組込まれているのは、Nodeのassertのみ。
expect()などを使いたい場合は、Chaiなどのライブラリが必要になります。
Mocha: Assertions

chai - expect(), assert() and should-style assertions

テスト用のコードの例 (Mocha + Chai)

ベースは、Mocha: Dynamically Generating Tests

"use strict";

const chai = require('chai');
const expect = chai.expect;
const tgt = require('../dist/tgt'); // テスト対象のモジュール

describe('モジュール名とか', function()
{
    describe('関数名とか', function()
    {
        const fnc = tgt.fnc; // テスト対象の関数
        const arr = [
            { value: 'あってる', comp: true },
            { value: '間違い', comp: false }
        ];

        arr.forEach(function(test)
        {
            const msg = 'value:' + test.value; // テスト結果の各行に表示されるメッセージ
            it (msg, function()
            {
                expect(fnc(test.value)).to.be.equal(test.comp);
            });
        });
    });
});