0

XCTestCase サブクラスの実装は以下のとおりです。

import XCTest
@testable import AppName

class SomeTestClass: XCTestCase {

    var viewController: AppName.ViewControllerName?
    override func setUp() {
        super.setUp()
        viewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("someIdentifier") as? AppName.ViewControllerName // Line 7
        _ = viewController?.view
    }

    override func tearDown() {
        // Put teardown code here. This method is called after the invocation of each test method in the class.
        super.tearDown()
    }

    func testIfCaseInteractionLabelIsNotNil() {
        XCTAssertNotNil(viewController?.someLabel)
    }
}

上記のコードでは、View Controller オブジェクトのタイプは「AppName.ViewControllerName」です。以下のように単に ViewControllerName として指定すると、7 行目のキャストが原因でテストが失敗します。

    var viewController: ViewControllerName?
    override func setUp() {
        super.setUp()
        viewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("someIdentifier") as? ViewControllerName // Line 7
        _ = viewController?.view
    }

ビューコントローラークラスを公開にして、swift2で @testable アノテーションを使ってみました。うまくいきません。

「Enable Testability」ビルド設定をYESにしました。

@testable import を使用しなくてもコードは機能しますが、多くのブログやチュートリアルではエラーが発生します。

どんな助けでも大歓迎です!前もって感謝します

4

0 に答える 0