在应用目标和测试目标中实现的类

时间:2018-07-31 07:49:58

标签: swift xcode core-data cocoapods

我正在使用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).

1 个答案:

答案 0 :(得分:0)

通过从测试目标中删除所有应用文件并改为使用

将所需的应用文件导入测试类中来解决此问题
@testable import MyAppTarget