如何在Swift中编写协议的单元测试

时间:2017-01-14 16:12:50

标签: ios swift unit-testing core-data xctest

协议由自定义视图控制器使用 我不确定这是否是正确的方法,但是现在我在单元测试类中实例化视图控制器。

目前我正在尝试这样做:

override func setUp() {
    super.setUp()

    let storyboard = UIStoryboard(name: "Main", bundle: nil)
    vc = storyboard.instantiateViewController(withIdentifier: "Transactions") as! TransactionsViewController
}

但它说Use of undeclared type 'TransactionsViewController'

这是要走的路吗?如果是,我如何使视图控制器可见?

2 个答案:

答案 0 :(得分:1)

单元测试通常是一个单独的目标,因此要使主目标中的文件对测试目标可见,您必须更改File Inspector中的目标成员资格

enter image description here

在您的情况下,您应该将Main.storyboardTransactionsViewController分享给您的测试目标。

答案 1 :(得分:0)

从Swift 2开始,您可以导入您尝试编写测试的模块:

@testable import ModuleName

使用此方法,您无需手动将App Target中的文件添加到测试目标。

所以,如果您的主要目标被命名为" MyApp"并且您的测试目标是" MyAppTests",您可以将其包含在您正在编写的每个测试文件的顶部:

@testable import MyApp