У меня есть протокол в моей основной цели:
protocol Animatable: UIView {
static var shouldAnimate: Bool { get }
}
и реализация по умолчанию в моей основной цели:
extension Animatable {
static var shouldAnimate: Bool { return true }
}
и объект, который соответствует этому протоколу, который выполняет не имеет реализацию .shouldAnimate
:
class MyView: Animatable { }
в моей тестовой цели Я хотел бы переопределить реализацию по умолчанию, поэтому я написал:
extension MyView {
static var shouldAnimate: Bool { return false }
}
Где-то в другом месте кода моей основной цели я написал print(MyView.shouldAnimate)
end, я ожидал увидеть результат:
- Если я запускаю только основную цель
true
- Если я запускаю свои тесты
false
Но когда В обоих случаях я вижу true
и реализация по умолчанию всегда запускается из этого протокола? Зачем? Разве это не должно быть отменено реализацией класса при запуске тестовой цели?