Node
mocha

power-assert でAPIテスト

More than 1 year has passed since last update.

基本的な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 という名前でテスト設定ファイルを作成。


api/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でご連絡頂きました。

https://twitter.com/t_wada/status/718269595652616192