@testable导入moduleName不导入所有内容

时间:2018-06-27 08:59:32

标签: ios objective-c swift unit-testing

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

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

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

有什么建议吗?

1 个答案:

答案 0 :(得分:3)

是的,对于具有两种 Objective-C和Swift 语言的项目,我也遇到了有关单元测试的问题。 所以基本上我发现的是 您必须将相应的文件和所有必需的文件添加到Test target。并且还需要将它们添加到 Bridging_Header 中以访问这些文件 此外,使用 @testable 是测试方法的内部方法。

@testable import moduleName

这是用于方法可见性的目的,即内部方法现在可以在unitTest中看到,但至少有私有方法不可见。