LoginSignup
4
1

More than 5 years have passed since last update.

power-assert でAPIテスト

Last updated at Posted at 2016-06-06

基本的な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でご連絡頂きました。

4
1
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
4
1