結論から言うといつものmochaコマンドを
mocha --compilers js:babel-core/register
とすればトランスパイルが走ってES6をテストできます。
例
例えばこのようなクラスがあったとします
ReceiveParameter.es6
export default class RecieveParameter {
constructor(e) {
const req = JSON.parse(e.postData.contents);
const payload = req.payload;
this.status = payload.status;
this.subject = payload.subject;
this.build_url = payload.build_url;
this.branch = payload.branch;
this.reponame = payload.reponame;
this.username = payload.username;
}
returnParams() {
return {
status: this.status,
subject: this.subject,
build_url: this.build_url,
branch: this.branch,
reponame: this.reponame,
username: this.username,
};
}
}
このクラスをテストするスクリプトは、以下となります。
ReceiveParameterSpec.es6
import chai from 'chai';
import ParameterClass from 'ReceiveParameter';
let should = chai.should();
// import {should, expect} from 'chai';
describe('ParameterClass', () => {
const contents = {
payload: {
status: 'fixed',
subject: '',
build_url: '',
branch: '',
reponame: '',
username: ''
}
};
const request = {
postData: {
contents: JSON.stringify(contents)
}
};
let params;
beforeEach(() => {
params = new ReceiveParameter(request);
});
context('this is first test script.', () => {
it('test!', () => {
const result = params.returnParams();
result.status.should.equal('fixed');
});
});
});
テストスクリプトの中でもimport
の様なes6構文が使えます。
あとはmocha
とchai
をインストールして
mocha --compilers js:babel-core/register
コマンドを実行してください。
このコマンドはトランスパイルを実行するので、babelの設定を忘れないでください。
自分の場合、babel-preset-latest
をインストールしています。
まとめ
es6によりJavaScriptがよりOOPしやすい言語となり、テスト・振る舞い駆動開発と相性がよくなった印象です。