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)
    }
}

在上面的代码中,视图控制器对象的类型是“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 注释。它不起作用。

我将“启用可测试性”构建设置设置为“是”。

即使我不使用 @testable 导入,代码也可以工作,但在许多博客和教程中,这会导致错误。

任何帮助,将不胜感激!提前致谢

4

0 回答 0