我正在尝试编写一个单元测试类来测试我的自定义类。当我尝试使用自定义对象作为输入变量调用自定义类中的方法时,我得到:“无法将“Person”类型的值转换为预期的参数类型“Person”。“Person”是从 NSManagedObject 继承的类,输入对象是从那里创建的。我对采用其他值类型的其他方法没有问题。该方法工作正常。测试班是唯一抱怨这一点的班级。这是错误还是限制?有什么建议我可以深入研究这个问题吗?
我有一个结构(部分)
struct Event : JSONSerializable, Glossy {
let name : String
let start : String
private var startTimeZone: String
let finish : String
private var finishTimeZone: String
Run Code Online (Sandbox Code Playgroud)
从 UnitTest 调用时:
func testReal() {
let event : Event = Event()
let editor = EventEditor(forEvent: Event())
XCTAssertNotNil(editor)
}
Run Code Online (Sandbox Code Playgroud)
引发编译错误:无法将“事件”类型的值转换为预期的争论类型“事件”
事件编辑器是:
import Foundation
class EventEditor {
let event : Event
init(forEvent event: Event) {
self.event = event
}
}
Run Code Online (Sandbox Code Playgroud)
但是,如果从产品(也称为单元测试外部)调用时,它可以正常工作,没有错误或问题。JSONSerializable——用于转换为/从 JSON Glossy 的辅助扩展——用于 json 解析的 cocoapod。
我尝试创建一个精简版的 Event 并添加部分(例如 JSONSerializable、Glossy)
谁能建议为什么这在 XCTest 中不起作用但在其他代码中起作用?