Модульный тест не пройден с оператором if - mocha / chai - PullRequest
0 голосов
/ 05 июня 2019

У меня есть простой модульный тест, который генерирует отчет и отправляет данные.

И есть две основные функции функции: - тот, который генерирует отчет и отправляет ключ / значения объекта. - тот, который выполняет вышеуказанную функцию. (function init())

Однако в функции init () я только хочу, чтобы эта функция выполняла свое действие, if/else она удовлетворяет определенному условию.

Этот код работает!

defineModule('GenerateReport', (require, module) => {
const service      = require('Service');


function sendReport() {
    const report = service.buildReport(xxx); 

    service.sendReport({
            value1: value,
            value2: 'value' 
        });
};

function init() {
    const number = getInfo('number');

    if (number >= 2) {
        sendReport();
    } else {
        console.log('Report did not send');
    }
};

module.exports = {
    init
 };
});

Однако мой модульный тест не пройден. Если я удалю оператор if / else, мой модульный тест пройдет.

Я не могу понять, как изменить модульный тест, чтобы он работал, пока включено условие if/else.

Надеюсь, это имеет смысл. Вот так выглядит юнит-тест. Я включил только фрагменты describe, так как я не думаю, что вам нужно видеть остальные:

    describe('Should have certain number', () => {
    it('should be more than no 1', () => {
        // GIVEN
        data = {
            number: 2
        };

        //WHEN
        SUT.init();

        // THEN
        expect(date.number >= 2)
    });

}), 

describe('Test to send report', () => {
    it('should send the report with object data', () => {
        // GIVEN
        const testObject = {
            value1: value,
            value2: 'value' 
        };

        // WHEN
        SUT.init();

        // THEN
        expect(service.sendReport).to.have.been.calledWith(testObject);
    });
});

Помните, это работает, если я полностью удаляю оператор if/else из функции init(). Так что, если это выглядело так:

    function init() {
        sendReport();
    };

Спасибо!

...