我有一个混合 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/