[Babel] Babel: mocha + power-assert + espower-babel で es6 で書いたテストを実行する

動く形まで写経する。

Note
espower-babel は Deprecated ということなので、後でまとめ直す。
まとめ直した。
Babel: mocha + power-assert + babel-register + babel-preset-power-assert で es6 で書いたテストを実行する | deadwood

ES6 で書かれたコードをユニットテストしたい。できればテスト自体も ES6 で。という希望を実現してくれそうなツールがあったので試してみる。

インストール

Babel と Browserify を利用しているので、2つめの方法を選択。

There are four ways to use power-assert.

power-assert + Babel + babel-plugin-espower: Recommended if you are writing ES6 with Babel or babelify with browserify

mocha と power-assert, espower-babel をインストールする。

% npm install --save-dev mocha power-assert espower-babel

使い方

require('assert')require('power-assert') へ変更する。

test/math.test.js
const assert = require('power-assert');
import * as Math from '../src/lib/math.es6.js';
// もしくは
// const Math = require('../src/lib/math.es6.js');
/** @test {Math} */
describe('Math', () => {
  /** @test {pi} */
  describe('pi', () => {
    it('円周率は 3.141593 である', () => {
      assert(Math.pi === 3.141593);
    });
  });
  /** @test {sum} */
  describe('sum', () => {
    it('1 + 2 の合計は 3 である', () => {
      assert(Math.sum(1, 2) === 3);
    });
  });
});

--compilers オプションを付けて実行する。

% $(npm bin)/mocha --compilers js:espower-babel/guess test/**/*.test.js

ESDoc 上でコードとユニットテストを関連付ける

function や variable は下記の形、

/** @test {function} */

class は下記の形でコメントを書くと、コードとユニットテストを関連付ける事ができる。

/** @test {Class#Method} */

2016-04-14_esdoc_01

補遺

ユニットテストまでで一旦保留。