Как написать модульный тест для функции? - PullRequest
2 голосов
/ 02 мая 2019

Я добавляю юнит-тесты в мои файлы JavaScript.Поскольку я не хочу наследовать некоторые функции, поэтому я объявляю функцию независимо.Как я могу написать модульный тест функции?(Как "getFormatData" ниже) Я не нашел учебник по этому поводу.Возможно, ключевые слова неверны :) Я знаю, как написать UT для setValue, но как написать UT для "getFormatData". Я пытался, но консоль показывает, что getFormat не определен.Даже если я добавлю "window.getFormatData ({});", сообщение об ошибке будет таким же.

MockedObject.prototype.setValue(oData){
    var oMockedData = getFormatData(oData);

    this.setData(oMockedData);
};

function getFormatData(oData){
    return oData ? oData : 1;
}
//Test "setValue":

QUnit.module("Test setValue", funciton(assert){
    var control = new MockedObject()
    var oData = {};
    sinon.stub(window, "getFormatData").returns("MockedResult");
    sinon.stub(control, "setData");

    control.setValue(oData);

    assert.ok(control.setData.called, "setData is called");

    window.getFormatData.restore();
    control.setData.restore();
})

//Test "getFormatData": 
QUnit.module("getFormatData", function(assert) {
     // Act
     var result = getFormatData({});//var result = window.getFormatData({});

     //Assert
     assert.strictEqual(result, 1, "Accepted");
})

1 Ответ

0 голосов
/ 03 мая 2019

Ну, что делает getFormatData? Каковы ожидаемые результаты на основе его вклада? Есть два случая: oData верен ---> oData возвращается; или oData является ложным ---> 1 возвращается;

В этом случае вы можете вызвать, например, getFormatData(113) и утверждать, что возвращаемое значение равно 113, затем вызвать getFormatData(false) и утверждать, что возвращаемое значение равно 1. Не намного больше проверить на getFormatData.

...