У меня есть модульный тест, и я хочу создать версию подкласса UIViewController
, например Test1ViewController
. В частности, я хочу переопределить метод present
для этого класса.
У меня есть расширение контроллера представления, которое создает экземпляр контроллера представления, в зависимости от его имени класса.
public class func instanceFromStoryboard<T>(storyboard: Storyboard) -> T {
return UIStoryboard(name: storyboard.rawValue, bundle: nil).instantiateViewController(withIdentifier: String(describing: T.self)) as! T
}
И класс Раскадровки.
public enum Storyboard: String {
case main = "Main"
}
В моем модульном тесте я создал подкласс из Test1ViewController
.
class Test2ViewController: Test1ViewController {
var presented: Bool = false
override func present(_ viewControllerToPresent: UIViewController, animated flag: Bool, completion: (() -> Void)? = nil) {
presented = true
}
}
Как я могу использовать мой метод расширения, чтобы извлечь контроллер представления из раскадровки, а затем уменьшить / подкласс до Test2ViewController
?