Я новичок в nodeJS и тестировании, и я хотел бы знать, как правильно тестировать маршруты приложений.Я читал некоторые статьи, в которых для вызова метода POST используются supertest и chai-http , но я считаю, что этот способ был бы скорее интеграционным тестированием, чем модульным тестированием моего приложения.
Я читал о Sinon, но мне трудно применить его к моему коду, потому что я не знаю, что заглушки, как я могу манипулировать данными из тела запроса, чтобы я мог охватить различные ветвииз моих условных заявлений.Я отслеживаю покрытие своего кода с помощью nyc , поэтому я также стремлюсь увеличить покрытие моего модульного теста.
Я был бы очень признателен, если бы кто-то мог мне помочь в этом.Заранее спасибо!
server.js
const express = require('express');
const app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended: true
}));
app.listen(8080, function () {
logger.info('App is now running on port 8080');
});
app.use('/', require('./routes/generateURL.js'));
module.exports = app;
generateURL.js
const express = require('express');
const router = express.Router();
router.post('/generate-url', (req, res) => {
let result = {
status: false
};
const acctId = req.body.accountId;
const baseURL = 'http://somecompany.com/billing/';
const dateToday = new Date();
try {
if (accountId) {
result.status = true;
result.bill = baseURL + acctId + '/' + dateToday;
} else {
throw 'Missing accountId';
}
} catch(err){
console.log(err);
}
return res.send(result);
});
module.exports = router;