-1
剛剛創建了一個新的快速開源中間件項目。我希望能夠從它生成的路由單元測試json響應...無論如何,我可以做到這一點,而不會實際發射一個咕嚕發球和檢查網址?節點快速單元測試JSON響應
那麼目標將是好歹運行路線,但不是JSON發送到瀏覽器,我可以將其存儲在一個變量的/ etc ...
什麼中間件的作用是基於在JavaScript註釋路線文件。
https://github.com/kmgilbert100/annotation-route-loader
我想提出我的單元測試包括根據試驗/路由/ **/*
注意app.use(loader)
的JSON響應,你可以在上面看到的URL將加載所有路由
下面是當前摩卡測試
// 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()
});
})
分享一些代碼,請。你有什麼嘗試?你有沒有嘗試過使用mock? –
提供 - 我註銷了路由器實例/ etc無法找到任何幫助..沒有挖出太多表達api tho,看看它如何處理它 –
看看郵差,它有測試套件內置,允許您使用預定義的json測試endpoint/api,並且測試用例可以用JS編寫。 –