У меня есть метод с вложенным оператором If-Then.
Тестируемый метод вызывает метод second дважды.
Что-то почти вот так (очень упрощенно):
module.exports = {
method_under_test: async function () {
let stat = await privateMethod();
if (stat == 0) { return true; }
else if (stat == 1) { return false; }
else if (stat == 2) {
doSomething();
stat = await privateMethod();
if (stat == 0) { return true; }
else { return false; }
}
else { return false; }
}
}
function privateMethod() {
return new Promise((resolve, reject) => {
doAsync((rep) => {
if (rep) {
if (rep === 'something') { resolve(0); }
else { resolve(1); }
} else {
resolve(2);
}
});
});
}
Обратите внимание, что если stat == 2
, то процесс выполняется, а закрытый метод запускается второй раз, чтобы убедиться, что процесс запущен успешно.
ПРИМЕЧАНИЕ: Я не могу изменить метод doAsync
в своем личном методе. Все, что я могу сделать, это интерпретировать результаты.
Итак, мой вопрос ... Я хочу подделать мой privateMethod
, чтобы при первом вызове он возвращал 2
, но при втором вызове он возвращал 1
и позволял мне проверить else
часть моего вложенного If-Else.
Может кто-нибудь указать мне правильное направление?
Спасибо.