Это ответственность докладчика.Вид должен быть как можно более глупым (простым).Я думаю, что это должно выглядеть примерно так:
protocol ViewInput {
func setup(title: String)
}
protocol ViewOutput: AnyObject {
func viewDidLoad()
}
class Presenter: ViewOutput {
unowned var view: ViewOutput
init(view: ViewOutput) {
self.view = view
}
func viewDidLoad() {
view.setup(title: "Your title")
}
}
class ViewController: UIViewController, ViewInput {
var presenter: ViewOutput?
override func viewDidLoad() {
super.viewDidLoad()
presenter.viewDidLoad()
}
func setup(title: String) {
self.title = title
}
}
Если вы напишите так, вы можете легко написать модульные тесты для заголовка представления.В тесте вы просто помещаете поддельное представление в презентатор, который реализует ViewInput и может сравнивать ожидаемый заголовок и заголовок, которые были настроены докладчиком.