我正在使用CoreData并通过自定义变量扩展了自动(未生成自定义类文件)模型类,这些自定义变量返回了来自CocoaPods依赖项的类的对象。
import Foundation
import ACocoaPodsFramework
import CoreData
extension MyClass {
var customVar: AClassFromCocoaPods? {
return AClassFromCocoaPods()
}
}
我已经将单元测试的目标添加到Xcode项目,并将MyClass和xcdatamodels添加到了测试目标。一个测试类如下所示。
import XCTest
import ACocoaPodsFramework
import CoreData
@testable import MyAppTarget
class MyClassTests: XCTestCase {
}
我已经在应用程序和单元测试目标中将ACocoaPodsFramework导入为框架。
运行单元测试时,我收到以下通知
objc[21178]: Class MyClass is implemented in both /.../MyAppTarget.app/MyAppTarget (0x1017703f0) and /... MyAppTarget.app/PlugIns/MyClassTests.xctest/MyClassTests (0x123dc8ae8). One of the two will be used. Which one is undefined.
和例外
Could not cast value of type 'MyAppTarget.MyClass' (0x60c0000ccc60) to 'MyAppTargetTests.MyClass' (0x1258c9a20).
答案 0 :(得分:0)
通过从测试目标中删除所有应用文件并改为使用
将所需的应用文件导入测试类中来解决此问题@testable import MyAppTarget