У меня есть функция в поле ввода, которая добавляет знак процента к значению с пользовательского ввода. Функция выглядит следующим образом:Как создать единичный тест для функции, которая проходит в объекте объекта как зависимость?
addPercentSign: function (oEvent, control) {
var inputVal = oEvent.getParameters().value;
var inputNumber = parseFloat(inputVal);
if (inputNumber) {
if (inputNumber < 50 || inputNumber > 100) {
return null;
} else {
var finalVal = inputNumber.toFixed(1);
var finalOutput = finalVal + "%";
control.learningCurve.setValue(finalOutput);
};
}
}
Поскольку эта функция зависит от объекта события, как я могу «фиктивные» параметры (объект oEvent) (с использованием Sinon.js или издевается), чтобы создать модульный тест для этого функционировать? Эмпирическое правило для модульных тестов заключается в том, чтобы изолировать устройство (функцию AddPercentSign) максимально, без каких-либо зависимостей.
Поскольку объект oEvent - это то, как мы извлекаем пользовательский ввод, я не уверен, что стратегия заключается в написании этого конкретного теста? Я бы просто создал объект в своем модульном тесте, который выглядит идентично объекту события?
QUnit.test("Check for Percent Sign", function (assert) {
var testOEvent = {value: '25'}
assert.ok(formatter.addPercentSign(testOEvent) == 25, "Test");
});