Swift项目的单元测试类

时间:2014-07-24 03:24:49

标签: ios unit-testing swift

我创建了一个新的单视图Swift项目并创建了一个 MyModel

class MyModel {

    func add(a : Int, b : Int) -> Int {
        return a + b
    }
}

但我在创建测试用例时遇到了问题。错误讯息:

  

/卷/麦金塔   HD /用户/用户/项目/测试用例/ TestCaseTests / TestCaseTests.swift:26:19:   使用未解析的标识符'model'

enter image description here

如您所见, 导入TextCase (我的目标)无法解决问题。解决问题的唯一方法是将MyModel.swift添加到目标: TestCaseTests 。但这与Objective-C项目不同(我根本不需要添加.m文件来测试案例目标)。这是一个错误还是设计?

3 个答案:

答案 0 :(得分:16)

您应该将正在测试的swift文件添加到测试目标中。

这可以通过单击swift文件,进入Utilities面板(右边的那个)并选中“Target membership”下的复选框来完成。

add testing target to swift file

无需将访问修饰符更改为public,内部即可。


更新

从XCode 7开始,不再需要制作测试目标的任何文件成员。

推荐的方法是使用 @testable import {Product Module Name}。只需确保使用产品模块而不是项目的文件夹名称。

答案 1 :(得分:5)

根据this回答,您现在可以使用@testable import {Module Name}(使用Xcode 7)。

答案 2 :(得分:4)

从Beta 4开始,访问修饰符已经可用,单元测试类现在被视为在主题模块之外,因此要访问模块中的任何内容,必须将其声明为 public

public class MyModel {

    public func add(a : Int, b : Int) -> Int {
        return a + b
    }

}