2017-02-22 4 views
1

In meinem aktuellen Setup habe ich nur einen Konstruktor (und möchte es so behalten) für meine Domain-Objekte. Sagen meine Klasse sieht so aus:FIRDataSnapshot in Swift testen

class Person: FIRDataObject //my custom class 

let name: String 
let age: Int 

required init (snapshot: FIRDataSnapshot) { 
    self.name = snapshot.json["name"].string 
    self.age = snapshot.json["age"].int 
} 

..und jetzt möchte ich meine Klasse testen. Aber ich kann keine Möglichkeit finden, einen neuen FIRDataSnapshot aus meinem Test zu erstellen. F. ich möchte etwas wie

class PersonTest: XCTest 

    test_create_person() { 
     let snapshot = FIRDataSnapshot("{name: "Kim", "age", 33}") <-- I want something like this 
     let person = Person(snapshot: snapshot) 
     XCTAssertEqual(...) 
    } 

Wer hat herausgefunden, wie man das macht?

Antwort

0

Ich habe einen Weg gefunden (mit SwiftyJson, aber das ist optional) durch Unterklasse FIRDataSnapshot. Bitte lassen Sie mich wissen, wenn Sie eine bessere finden:

class PersonTest: XCTest 

    test_create_person() { 
     let person = Person(snapshot: FIRPersonDataSnapshot()) 
     XCTAssertEqual(person.name, "Kim") 
    } 

class FIRPersonDataSnapshot: FIRDataSnapshot 

    override var value : Any? { 
     let json: JSON = [ 
      "name": "Kim", 
      "age": 33, 
     ] 
     return json.dictionaryObject 
    } 
Verwandte Themen