swift - 在 Swift 中对我自己的 ViewController 进行单元测试时使用未声明的类型 'ViewController'?

标签 swift xctest

我一直在尝试用 Swift 编写测试用例来测试我的 ViewController。但是,当我尝试在 XCTestCase 中实例化我自己的 ViewController 时,我得到了 “使用未声明的类型‘ViewController’”。 (ViewController是我自己的UIViewController类的名字)

enter image description here

有没有人遇到过这个问题?我正在使用 Xcode 6 beta 5

最佳答案

swift 1

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

enter image description here

如果您是 ViewController 在一个框架内:ViewController 类在不同的目标中并且您没有声明具有公共(public)访问级别的类。默认情况下,类是内部的(在目标内可访问)。将其声明为公共(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.
    }

}

swift 2 更新

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

@testable import moduleToTest

您现在可以访问测试目标中的 publicinternal 符号。

swift 2 Xcode 7 unit testing

关于swift - 在 Swift 中对我自己的 ViewController 进行单元测试时使用未声明的类型 'ViewController'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25305945/

相关文章:

ios - 如何快速获取 UIButton 颜色

swift - 在以编程方式实例化的 UIViewController 中测试 UITableView

ios - 为 Swift/Obj-c 项目运行 XCTest 时出错(错误 83)

iOS - 如何对深层链接进行单元测试以确保它们可以在应用程序端进行处理

ios - 新创建的测试用例类未显示在Xcode的“测试导航器”下

ios - 我们可以在单元测试时检查 uitextfield 的验证吗?

ios - Swift Firebase QueryLimitedToFirst

swift - UITableViewCell 子类 IBOutlets 返回 nil

ios - iOS 13 中向 UITableView 添加 UI 长按手势

ios - 仅在 iPhone 4S 上在 postNotification 后添加观察者