В настоящее время я пытаюсь понять модульное тестирование в Swift 4. У меня есть класс с методом, который настраивает мои контроллеры представления.
Я хотел бы убедиться, что этот метод правильно устанавливает заголовок ViewController,
Однако я не могу понять, как написать этот тест?
Это мой код и тест до сих пор.
В настоящее время мои тесты не проходят с:
XCTAssertEqual failed: ("nil") is not equal to ("Optional("Favourites")") -
Как можно проверить это поведение?Любая помощь приветствуется.
Контроллер
class MainTabBarController: UITabBarController {
override func viewDidLoad() {
super.viewDidLoad()
setupTabBar()
setupViewControllers()
}
// MARK:- Setup
fileprivate func setupViewControllers() {
viewControllers = [
generateNavigationController(with: UIViewController(), title: "Favourites", image: UIImage(imageLiteralResourceName: "favorites")),
generateNavigationController(with: UIViewController(), title: "Search", image: UIImage(imageLiteralResourceName: "search")),
generateNavigationController(with: UIViewController(), title: "Downloads", image: UIImage(imageLiteralResourceName: "downloads"))
]
}
fileprivate func setupTabBar() {
tabBar.tintColor = .purple
}
// MARK:- Helpers
fileprivate func generateNavigationController(with rootViewController: UIViewController, title: String, image: UIImage) -> UIViewController {
let controller = UINavigationController(rootViewController: rootViewController)
controller.tabBarItem.title = title
controller.tabBarItem.image = image
rootViewController.navigationItem.title = title
navigationController?.navigationBar.prefersLargeTitles = true
return controller
}
}
Тесты
import Foundation
import XCTest
@testable import Podcasts
class MainTabBarControllerTests: XCTestCase {
func testTheInitialViewControllerShouldHaveTitleFoo() {
let sut = MainTabBarController()
let _ = sut.viewDidLoad()
XCTAssertEqual(sut.navigationItem.title, "Favourites")
}
}