Help us understand the problem. What is going on with this article?

power-assert でAPIテスト

More than 3 years have 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

mikakane
PHPerです。がんばります。
http://chatbox-inc.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした