Здравствуйте, товарищи по переполнению,
Я работаю над классом Swift, инициализатор которого содержит цикл for, который выполняется определенное количество раз в соответствии с параметром init. К сожалению, я не могу показать вам точный код, но он похож на это:
init(numberOfTimes: Int) {
...
for index in 0..<numberOfTimes {
// do some stuff here
// shows 0 coverage
}
...
}
У меня есть несколько модульных тестов для этого инициализатора, выполняющих цикл for от 0 до 5 раз. Тесты пройдены, но покрытие кода всегда помечает внутри цикла как не охваченное, даже если оно четко выполняется - я могу установить точку останова внутри цикла, и каждая функция, вызываемая в цикле, отображается как покрытая.
Кроме того, если я извлечу содержимое цикла for, код действительно будет выглядеть покрытым, и общее покрытие кода класса увеличится почти на 20%:
init(numberOfTimes: Int) {
...
for index in 0..<numberOfTimes {
doOne(index)
// this part still shows 0 coverage
}
...
}
private func doOne(_ index: Int) {
// do same things here
// shows correct coverage
}
Почему это происходит? Не отвечаю ли я правильным критериям покрытия кода внутри цикла for?