Express用の新しいオープンソースミドルウェアプロジェクトを作成しました。私はそれが生成するルートからjsonレスポンスを単体テストすることができるようにしたいと思います...とにかく、実際にはむちゃくちゃなサービスを起動してURLをチェックせずにこれを行うことができますか?ノードエクスプレスユニットテストJSONレスポンス
何らかの方法ルートを実行するためので、目標はなるだろうが、その代わり、私は、変数の/ etcに格納でき、ブラウザにJSONを送信する...
何ミドルウェアが行うことは、JavaScriptでのアノテーションに基づいてルートを生成していますファイル。私はユニットテストをしたいと思い
https://github.com/kmgilbert100/annotation-route-loader
はあなたがテスト/ルート/ **/*
注app.use(loader)
の下で上記のURLで見ることができますJSON応答がすべてのルートをロードするテストが含ま
現在モカテストはコメント
// npm modules
const chai = require('chai');
const _ = require('lodash');
const express = require('express');
// local modules
var routeLoader = require('../src/index');
// testing module methods
const assert = chai.assert;
describe('annotation-route-loader',() => {
// store collection of routes
var routePaths = [];
before("Create collection to check from",() => {
var loader = routeLoader({
baseUrl: '/',
path: './routes',
pattern: '**/*.js',
params: {
sports: [
'footbal',
'baseball',
'motocross',
'hockey'
]
}
});
loader['stack'].forEach(stack => {
routePaths.push({
path: stack.route.path,
methods: stack.route.methods
})
})
});
it('Should make sure the default path is valid', (done) => {
// Try And Find Path
var defaultPath = _.find(routePaths, {path: '/'});
assert.isObject(defaultPath);
assert.isTrue(defaultPath.methods.get);
// Make Callback
done()
});
it('Should make sure the sports path is valid', (done) => {
// Try And Find Path
var defaultPath = _.find(routePaths, {path: '/sports'});
assert.isObject(defaultPath);
assert.isTrue(defaultPath.methods.get);
// Make Callback
done()
});
it('Should make sure the sports list path is valid', (done) => {
// Try And Find Path
var defaultPath = _.find(routePaths, {path: '/sports/list'});
assert.isObject(defaultPath);
assert.isTrue(defaultPath.methods.get);
// Make Callback
done()
});
})
シェア...スニペットの下にしてくださいを参照してください。何を試しましたか?モックを使ってみましたか? –
提供されています - ルータのインスタンスをログアウトしました/ etc cantが何かを見つけるのを助けるためにエクスプレスapi thoにあまりにも多くを掘り込まないでください。 –
Postmanを見てください。事前定義されたjsonを使用してエンドポイント/ apiをテストすることができます。テストケースはJSで記述することができます。 –