什么是Objective C中@testable导入的替代方案

Bab*_*kar 7 objective-c ios xctest xcode7.3

我正在使用Xcode在目标C中提供的XCTest处理Xcode中的单元测试.我知道如何在Swift中导入Module,如下所示.


@testable import  AppName
Run Code Online (Sandbox Code Playgroud)

什么是客观C的替代方案.

Sul*_*han 6

@testable覆盖 Swift 中的访问权限,允许您internal在单元测试中测试方法。

Objective-C 没有这样的访问修饰符,因此您不需要@testable,您只需正常导入模块即可。

如果您需要对内部 Swift 方法进行单元测试,则必须使用 Swift 编写测试。


Tom*_*mer 5

在Objective C中,您可以简单地实现#import它们,因为在Swift中没有这样的“内部”方法访问限制。

另外,在Xcode 6上,您的主要目标应该已经链接到测试目标。如果不是,请尝试在“测试目标”>“常规”>“测试”中选中“允许测试主机应用程序API”复选框。请查看此问题以获取更多信息。

  • 简单地#import什么?如果Swift文件不在测试目标中,则它们将不在AppTest-Swift.h中,并且在编译测试目标时无法访问App-Swift.h。 (3认同)