Ich habe eine Struktur (teilweise)Swift 3 Unit Test wirft Fehler kompilieren
struct Event : JSONSerializable, Glossy {
let name : String
let start : String
private var startTimeZone: String
let finish : String
private var finishTimeZone: String
dass "Can not Wert 'Typ' auf 'Typ' konvertieren", wenn sie von Unittest genannt:
func testReal() {
let event : Event = Event()
let editor = EventEditor(forEvent: Event())
XCTAssertNotNil(editor)
}
wirft Fehler kompilieren: nicht Wert vom Typ ‚Ereignis‘ zu erwarten arguement Typ ‚Ereignis‘
EventEditor ist
umwandeln kann:import Foundation
class EventEditor {
let event : Event
init(forEvent event: Event) {
self.event = event
}
}
Aber wenn von Produkt (aka außerhalb, wenn Unit-Tests) aufgerufen wird, funktioniert es gut ohne Fehler oder Probleme. JSONSerializable - Helfer Erweiterungen zu/von JSON Glossy - Cocoapod für JSON Parsing zu konvertieren.
Ich habe versucht, erstellt eine abgespeckte Version von Ereignisse und das Hinzufügen von Stücken (zB JSONSerializable, Glossy)
Kann jemand empfehlen, warum dies nicht in XCTest funktionieren würde, aber in anderem Code funktioniert?
Haben Sie '@testable import nameOfYourProject' unter' Import XCTest'? – Honey
ist nicht diese Zeile: 'let event: Event = Event()' gibt Ihnen einen Fehler? Sie ** ** ** geben ihm keinen Wert für seine Parameter, Sie sollten initialisieren mit 'Event (Name:" John ", Start:" 1. Mai ", ...)' ODER Ihre Struktur könnte Standardwerte wie in 'haben Let Name: String = "" Lassen Sie starten: String = "Jan 1st", ... 'geben Sie allen Eigenschaften der Struktur einen Standardwert, so dass Sie' Event() 'tun können, die im Grunde mit den Standardwerten – Honey
auch sehen würde [hier] (http://stackoverflow.com/questions/39419707/cannot-convert-value-of-type-x-to-expected-argument-type-x) – Honey