基本的なmocha/supertestによるAPIテストは
http://qiita.com/mikakane/items/312f901850cc33b3b07b
を参照。
ここでは検証ツールにpower-assertを使ってみる。
まずは準備
$ npm i power-assert intelli-espower-loader supertest --save
test code はmochaの形式で記述出来る。
var request = require('supertest');
var assert = require("power-assert");
describe("SEE API",() => {
this.timeout(2000)
var agent = request.agent("http://localhost:8000/");
it('send addTask',(done) => {
agent
.post('/api/news')
.set('Accept', 'application/json')
.send({
page: 1
})
.expect(function(res){
assert(res.status === 200);
assert(res.body.status === "OK");
}).end(function(err,res){
if(err){
throw err;
}
done();
});
});
})
power-assert を使えばassert関数を用いて高度なデバッグが可能になる。
supertest は テスト向けのsuperagent wrapper。簡単にテストを作成する際には便利で、sessionの引き継ぎなどを行ってくれる。
実行は
$ mocha --require intelli-espower-loader tests/index.js
注意など
フォルダ構成を触る場合
intelli-espower-loader は test ディレクトリの中でのみ有効のよう
カスタムのディレクトリ内にソースを起きたい場合には、自分で設定ファイルを作る必要がある。
例えば api/tests/
というディレクトリにファイルを起きたい場合。
追加モジュールのインストール
$ npm i espower-loader --save
例えば api/tests/enable-power-assert.js という名前でテスト設定ファイルを作成。
require('espower-loader')({
cwd: process.cwd(),
pattern: '**/*.js' //対象のファイルを指定
});
power-assert 変換対象のファイルをminimatch記法で記述するとよいらしい。
テスト実行は以下のコマンドで。
$ mocha api/tests --require api/tests/enable-power-assert.js
こちらの情報は@t_wada さんより Twitterでご連絡頂きました。