2
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[めも]mochaとchaiの使い方

Posted at

ユニットテストって何?って人向けの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);
            });
        });
    });
});
2
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?