Как правильно написать модульные тесты для модулей маршрутизатора в NodeJS - PullRequest
0 голосов
/ 21 февраля 2019

Я новичок в 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;
...