Erstellt gerade ein neues Open-Source-Middleware-Projekt für Express. Ich möchte in der Lage sein, die json Antwort von den Wegen zu testen, die es erzeugt ... Gibt es irgendwie ich kann das tun, ohne tatsächlich einen grunzen Aufschlag zu schießen und die URL zu überprüfen?Knoten Express Unit Test JSON Antwort
So würde Ziel für someway sein, um die Strecke zu laufen, sondern json an den Browser sendet ich es in einer Variablen speichern kann/etc ...
Was die Middleware tut, ist Routen auf Annotationen in Javascript basierend erzeugt Dateien.
https://github.com/kmgilbert100/annotation-route-loader
Ich möchte meine Unit-Test umfassen die Prüfung der JSON Antworten, damit Sie app.use(loader)
die Routen aller
Hinweis sehen
Im Folgenden finden Sie die aktuelle Mokka Test
// 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()
});
})
teilen einige Code bitte. Was hast du probiert? Hast du versucht, Mocks zu benutzen? –
Bereitgestellt - Ich habe die Router-Instanzen/etc kann nichts finden, um zu helfen .. habe nicht zu viel in express api tho gegraben, um zu sehen, wie es behandelt –
Werfen Sie einen Blick auf Postman, hat es Testsuite eingebaut, die erlauben Sie es, den Endpunkt/api mit vordefiniertem json zu testen, und der Testfall kann in JS geschrieben werden. –