我创建了一个新的单视图Swift项目并创建了一个 MyModel :
class MyModel {
func add(a : Int, b : Int) -> Int {
return a + b
}
}
但我在创建测试用例时遇到了问题。错误讯息:
/卷/麦金塔 HD /用户/用户/项目/测试用例/ TestCaseTests / TestCaseTests.swift:26:19: 使用未解析的标识符'model'
如您所见, 导入TextCase (我的目标)无法解决问题。解决问题的唯一方法是将MyModel.swift添加到目标: TestCaseTests 。但这与Objective-C项目不同(我根本不需要添加.m文件来测试案例目标)。这是一个错误还是设计?
答案 0 :(得分:16)
您应该将正在测试的swift文件添加到测试目标中。
这可以通过单击swift文件,进入Utilities面板(右边的那个)并选中“Target membership”下的复选框来完成。
无需将访问修饰符更改为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
}
}