Xcode - Странное покрытие кода вычислительного свойства Swift - PullRequest
2 голосов
/ 19 марта 2019

Я включил покрытие кода для своих модульных тестов, но для одной структуры я не могу набрать 100%, хотя я считаю, что я тестирую все возможные пути кода.

Моя структура имеет вычисляемое свойство, определенное как:

var nativeSize: CGSize {
    if rotated {
        return targetRect.size.rotated
    } else {
        return targetRect.size
    }
}

(Здесь targetRect - это хранимое свойство той же структуры, типа CGRect, self.rotated - это хранимое логическое свойство, а self.size.rotated - это вычисляемое свойство в расширении CGSize, которое просто возвращает копию с width и height взаимозаменяемыми)

Мой код модульного теста создает два экземпляра структуры, один с rotated установленным на true, а другой с false, и получает доступ к этому свойству nativeSize в каждом (чтобы охватить оба пути кода) , утверждая их равенства ожидаемым значениям.

Однако, я получаю только 95,5% покрытия для структуры. В редакторе кода это выделено так:

enter image description here

(это единственная красная область во всем исходном файле)

Это ошибка XCode или я что-то упустил?

1 Ответ

1 голос
/ 07 апреля 2019

Я бы сказал, что это ошибка .

Я воспроизвел ваш код в Xcode 10.2, и у меня такое же поведение.

enter image description here

Но если я изменю синтаксис на эквивалентный однострочный, покрытие перейдет на 100%.

enter image description here

Я предлагаю вам открыть радар. Я буду делать то же самое.

...