我有一个混合了Obj-C和Swift的项目,但在使单元测试正常工作时遇到了一些问题。
我正在使用@testable import moduleName
指令导入我的文件,但是它似乎并未导入所有文件。我几乎可以完全访问我的所有Obj-C模型,管理器类等,但是XCTestCase
中没有可用的视图控制器(其中95%在Obj-C中)可用我的Swift文件。
我已经在XCTestCase的顶部导入了@testable import ModuleName
,
我还编辑了目标以启用可测试性,但是访问这些文件的唯一方法似乎是手动设置文件目标成员身份,如果我正确理解了所有内容,则无需这样做。
有什么建议吗?
答案 0 :(得分:3)
是的,对于具有两种 Objective-C和Swift 语言的项目,我也遇到了有关单元测试的问题。
所以基本上我发现的是
您必须将相应的文件和所有必需的文件添加到Test target。并且还需要将它们添加到 Bridging_Header 中以访问这些文件
此外,使用
@testable
是测试方法的内部方法。
@testable import moduleName
这是用于方法可见性的目的,即内部方法现在可以在unitTest中看到,但至少有私有方法不可见。