Я пишу утилиты в своих тестовых классах. Для удобства я предоставляю утилиты как в расширении, так и в подклассе.
Пример кода, который будет регистрировать сообщение:
extension XCTestCase {
func log() {
print("Log from XCTestCase")
}
}
public class MyXCTestCase: XCTestCase {
override func log() {
print("Log from XCTestCase Subclass")
}
}
public let myXCTestCase = MyXCTestCase()
Это потому, что я разрешаю пользователь, который использует мои утилиты, чтобы выбрать свой вариант. В тестовом примере они могут вызывать метод журнала следующими способами:
log() //Prints "Log from XCTestCase"
myXCTestCase.log() //Prints "Log from XCTestCase Subclass"
Оба работают нормально, и пользователь может выбрать удобный способ.
Теперь я попытался добавить в мой код bool, чтобы включить / отключить их выбор. Вот так:
public let useExtensionsAlone:Bool = true
Я пытаюсь заблокировать / прокомментировать / отключить весь MyXCTestCase
, если useExtensionsAlone
равно true . Таким же образом, если useExtensionsAlone
равно false , я хочу отключить extension XCTestCase
.
Возможно ли это со Swift?
PS: Я не хочу добавлять выражение « if-else » внутри каждого метода для проверки useExtensionsAlone
стоимость. Причина предоставления этой концепции расширения / класса заключается в том, что из-за огромного количества вспомогательных методов могут возникнуть трудности с поиском желаемого имени метода. Поэтому я тоже сгруппировал методы в классы.