我在nodejs的主类中有以下代码。
我正在使用sinon进行单元测试。
我如何测试这部分代码
res.status(error.status || 500);
我能够通过调用无效的URL来测试error.status部分,从而导致上面的错误处理404,但是我如何进入500
流?
main.js:
...
//importing route
var routes = require('./api/rest/webservRest');
//register the route
routes(app);
//reached here throw error 404, means no routes to handle inc. request
app.use((req, res, next) => {
const error = new Error('Not found');
error.status = 404;
next(error);
});
// catch errors
app.use((error, req, res, next) => {
log.error("ERROR - " + req.url + " - " + error.message);
res.status(error.status || 500);
res.json({
error: {
message: error.message
}
});
});
//start application
module.exports = app.listen(port, () => {
log.info('Module - RESTful API server started on: ' + port);
});
答案 0 :(得分:0)
500
返回虚假值,例如error.status
或false
,则会捕获 undefined
。
因此,也许您可以使用Sinon来对error
进行如下操作:
const error = {
status: false,
message: 'something'
}
或
const error = {
message: 'something'
}
希望有帮助