0
我有一個結構(部分)斯威夫特3單元測試拋出編譯錯誤「無法值‘類型’轉換成‘類型’」
struct Event : JSONSerializable, Glossy {
let name : String
let start : String
private var startTimeZone: String
let finish : String
private var finishTimeZone: String
,從單元測試調用時:
func testReal() {
let event : Event = Event()
let editor = EventEditor(forEvent: Event())
XCTAssertNotNil(editor)
}
拋出編譯錯誤: 無法將類型「事件」預期arguement類型「事件」
EventEditor的值是:
import Foundation
class EventEditor {
let event : Event
init(forEvent event: Event) {
self.event = event
}
}
但是,如果從產品調用(又稱外部如果單元測試)它工作得很好,沒有錯誤或問題。 JSONSerializable - 從JSON轉換到JSON的輔助擴展 Glossy - 用於json解析的cocoapod。
我試圖創建活動並添加件的精簡版(例如JSONSerializable,有光澤)
任何人都可以說明爲什麼這不會在XCTest工作,但在其他代碼的工作?
你有在'Import XCTest'下有'@testable import nameOfYourProject'嗎? – Honey
不是這一行:'let event:Event = Event()'給你一個錯誤?你是不是**給它的任何參數值,你應該用'Event(name:「John」,start:「May 1st」,...)初始化'或者你的結構可以有'讓name:String =「」let start:String =「Jan 1st」,...'給出struct的所有屬性默認值,這樣你就可以執行'Event()',它基本上初始化爲默認值 – Honey
也見[這裏](http://stackoverflow.com/questions/39419707/cannot-convert-value-of-type-x-to-expected-argument-type-x) – Honey