gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 12:06:45 25 4
gpt4 key购买 nike

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

例如

子模块.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
}

在此测试中,我在访问 .value 时收到“使用未声明的类型“InternalSubModuleType””。

  • 我已将 SubModule 目标添加到 App-Tests“目标依赖项”
  • 对于我正在编译用于测试的方案,我已将 App 目标和 SubModule 目标的“启用可测试性”设置为 YES。

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

测试目标中是否只允许 1 个目标进行 @testable import 还是我遗漏了什么?

<小时/>

使用 Xcode 9、Swift 3.2

最佳答案

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

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

关于ios - 测试无法导入子依赖项 - @testable import SubModule - 使用未声明的类型 'InternalSubModuleType',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46591358/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com