在Objective C中,每当我必须访问测试包时,我都会调用
[NSBundle bundleForClass:[ClassInTestTarget class]];
bundleForClass
在Swift中不可用,那么如何访问测试包呢?
我需要这个的原因是,为了编写我正在研究的框架的测试,我必须使用内存核心数据堆栈。最初所有资源都包含在主目标和测试目标中,但之后我将所有这些测试助手移动到仅测试目标,现在下面的代码返回nil,这使我的所有测试失败
let modelURL = NSBundle.mainBundle().URLForResource("Model", withExtension: "momd")
答案 0 :(得分:44)
相应的Swift代码是
// Swift 3 and later:
Bundle(for: ClassInTestTarget.self)
// Swift 1, 2:
NSBundle(forClass: ClassInTestTarget.self)
ClassInTestTarget.self
返回" ClassInTestTarget"的类对象类。