测试无法导入子依赖项 - @testable import SubModule - 使用未声明的类型' InternalSubModuleType'

时间:2017-10-05 17:16:33

标签: ios swift xcode9 testability

我有一个单元测试需要访问由我的应用程序目标导入的模块的内部方法/属性。

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"目标依赖关系"
  • 我设置了#34;启用可测试性"对于我正在编译测试的方案的App目标和SubModule目标,为YES。

@testable import应该允许您访问在这些条件下标记为内部的类型。我不确定为什么我会收到此编译错误。我仍然可以使用{em>任何类型在我的应用目标中使用@testable但不是我的SubModule目标。

你是否只允许1个目标在测试目标中成为@testable import,或者是否有我遗失的东西?

使用Xcode 9,Swift 3.2

1 个答案:

答案 0 :(得分:0)

重新创建测试目标对我来说似乎已经成功了。

只需删除旧的测试目标,创建一个新目标并将此目标添加到您拥有的所有测试文件中。