Выбор ответа Senior Процессы и метрики качества обновлено
Покрытие операторов и ветвей
Вопрос
Функция:
function price(p, isVip) {
let d = 0;
if (isVip) d = 0.1;
return p * (1 - d);
}
Есть один тест price(100, true). Какое покрытие он даёт?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: 100% операторов, 50% ветвей. С isVip = true выполняются все операторы, включая d = 0.1, поэтому покрытие операторов 100%.
Варианты ответа
- 100% операторов и 100% ветвей
- 50% операторов, 50% ветвей
- 100% операторов, 50% ветвейправильный ответ
- 75% операторов, 100% ветвей
Разбор
С isVip = true выполняются все операторы, включая d = 0.1, поэтому покрытие операторов 100%. Но у if две ветви: истинная и ложная, а ложная (обычный клиент) не выполнялась ни разу, это 50% ветвей. 100% ветвей потребует второго теста с false. Покрытие ветвей всегда не слабее покрытия операторов, поэтому вариант «75% операторов, 100% ветвей» невозможен.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.