Как проверить http-код состояния 500 в sinon? - PullRequest
0 голосов
/ 14 ноября 2018

У меня есть следующий код в моем основном классе в nodejs.

Я занимаюсь модульным тестированием с использованием sinon.

Как проверить эту часть кода res.status(error.status || 500);

Я могу проверить часть error.status, вызвав недопустимый URL-адрес, который приводит к обработке ошибок выше, 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);    
});

1 Ответ

0 голосов
/ 15 ноября 2018

500 будет перехвачено, если error.status вернет ложное значение, такое как false или undefined.

Так что, возможно, вы можете заглушить error с помощью Sinon, как показано ниже:

const error = {
  status: false,
  message: 'something'
}

или

const error = {
  message: 'something'
}

Надеюсь, это поможет

...