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 を使用しなくてもコードは機能しますが、多くのブログやチュートリアルではエラーが発生します。
どんな助けでも大歓迎です!前もって感謝します