Переопределение реализации протокола по умолчанию в тестовой цели - PullRequest
1 голос
/ 13 июля 2020

У меня есть протокол в моей основной цели:

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, я ожидал увидеть результат:

  1. Если я запускаю только основную цель true
  2. Если я запускаю свои тесты false

Но когда В обоих случаях я вижу true и реализация по умолчанию всегда запускается из этого протокола? Зачем? Разве это не должно быть отменено реализацией класса при запуске тестовой цели?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...