ios - @testable import moduleName 不导入所有内容

标签 ios objective-c swift unit-testing

我有一个混合 Obj-C 和 Swift 的项目,但在让单元测试正常工作时遇到一些问题。

我正在使用 @testable import moduleName 指令导入我的文件,但它似乎并未导入所有文件。我可以完全访问几乎所有 Obj-C 模型、管理器类等。但是 XCTestCase 中没有任何 View Controller (其中 95% 在 Obj-C 中)可用,以及我所有的 Swift 文件。

我已在 XCTestCase 顶部导入了 @testable import ModuleName, 我还编辑了目标以实现可测试性,但访问这些文件的唯一方法似乎是手动设置文件目标成员身份,如果我正确理解了所有内容,则不需要这样做。

有什么建议吗?

最佳答案

是的,我也遇到了关于单元测试的同样问题,该项目同时具有 Objective-C 和 Swift 语言。 所以基本上我发现的是 您必须将相应的文件和所有必需的文件添加到测试目标。还需要将它们添加到 Bridging_Header 才能访问这些文件 此外,使用背后的原因 @testable 是测试方法内部....方法。

@testable import moduleName

这用于方法的可见性,即内部方法现在可以在 unitTest 中可见,但至少私有(private)方法不会。

关于ios - @testable import moduleName 不导入所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51058588/

相关文章:

iOS 多任务手势 : Is there any way to check if the user has them turned on or not?

objective-c - 获取 NSTableView 以注册 PNG 源中的 drop

ios - 自定义 UITableViewCell 在编辑时不显示缩进

swift - Getter 意外地第二次调用 inout 参数

ios - Swift ios 检查用户是否启用了通知总是返回 true

ios - 在 UITableViewDelegate 扩展中使用未解析的标识符

ios - MDM 中 iOS 设备的 ProductName 是什么

ios - 将 Swift 数组以外的其他内容用于传递给 OpenGL 缓冲区的可变固定大小线程安全数据

android - 我可以完全更改我的移动应用程序的基本代码并仍然保留我在 Google Play 和 Apple 商店中的下载次数吗?

objective-c - IB Inspector 窗口中 connection tap 下的 Outlets 和 Referencing Outlets 有什么区别?