在Swift中单元测试我自己的ViewController时,使用未声明类型的'ViewController'?

hoo*_*omi 24 xctest swift

我一直在尝试在Swift中编写测试用例来测试我的ViewController.但是,当我尝试在XCTestCase中实例化我自己的ViewController时,我得到"使用未声明的类型'ViewController'".(ViewController是我自己的UIViewController类的名称)

在此输入图像描述

还有其他人以前遇到过这个问题吗?我正在使用Xcode 6 beta 5

Yat*_*B L 48

斯威夫特1

如果您不使用框架,还应将ViewController.swift文件的目标成员资格也添加为测试目标.选择类文件添加到目标,如图所示:

在此输入图像描述

要么

如果您是ViewController在框架内:ViewControllerclass在不同的目标中,并且您没有声明具有公共访问级别的类.默认情况下,类是内部的(在目标中可访问).如果要访问它,则将其声明为public,并将方法或属性设置为public

public class ViewController: UIViewController {

    public var content: String!

    override public func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }

    override public func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

}
Run Code Online (Sandbox Code Playgroud)

Swift 2更新

在测试目标中,只需使用@testable关键字导入要测试的模块:

@testable import moduleToTest
Run Code Online (Sandbox Code Playgroud)

您现在可以访问测试目标中的符号public和internal符号.

swift 2 Xcode 7单元测试