しおメモ

雑多な技術系ブログです。ニッチな内容が多いです。

View Controllerのユニットテスト

View ControllerのUIテストはともかく、ユニットテストはどうするのかわからなかったので調べました。Swift 3です。

class MapViewControllerTests: XCTestCase {
    
    var mapViewContoller : MapViewController?
    
    override func setUp() {
        super.setUp()

        let storyboard = UIStoryboard(name: "Main", bundle: Bundle.main)
        mapViewController = storyboard.instantiateInitialViewController()
        
        UIApplication.shared.keyWindow?.rootViewController = mapViewController
        
        let _ = mapViewController.view
    }
}

let _ = mapViewController.viewとするのが肝心で、一度viewプロパティをよんであげることでViewDidLoad()などが呼ばれ、正しくView Controllerが準備されます。 後は普通のユニットテスト同様です。

UIViewController - UIKit | Apple Developer Documentation