我有一个单元测试需要访问由我的应用程序目标导入的模块的内部方法/属性。
E.g。
SubModule.swift
public class SubModuleType {
...
internal let value: InternalSubModuleType
...
}
AppViewController.swift
import SubModule
// do things with SubModuleType
AppViewControllerTests.swift
@testable import App
@testable import SubModule
func testWithSubModule() {
let internalSubModuleTypeInstance = SubModule.SubModuleType().value
// ... run a test dependent on internalSubModuleTypeInstance
}
在此测试中,我收到了“使用未声明的类型' InternalSubModuleType''访问.value
时。
SubModule
目标添加到App-Tests
"目标依赖关系" @testable import
应该允许您访问在这些条件下标记为内部的类型。我不确定为什么我会收到此编译错误。我仍然可以使用{em>任何类型在我的应用目标中使用@testable
但不是我的SubModule目标。
你是否只允许1个目标在测试目标中成为@testable import
,或者是否有我遗失的东西?
使用Xcode 9,Swift 3.2
答案 0 :(得分:0)
重新创建测试目标对我来说似乎已经成功了。
只需删除旧的测试目标,创建一个新目标并将此目标添加到您拥有的所有测试文件中。