2017-02-22 4 views
1

私の現在の設定では、私のドメインオブジェクトのコンストラクタは1つだけです(そのままにしておきたい)。私のクラスは次のようになります:SwiftのFIRDataSnapshotをテストする

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 
} 

..今私はクラスをテストしたいと思います。しかし私は私のテストから新しいFIRDataSnapshotを作り出す方法を見つけることができません。 F.ex私は何かが好きです

class PersonTest: XCTest 

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

それを行う方法を知りましたか?

答えて

0

私はFIRDataSnapshotをサブクラス化することによって(SwiftyJsonを使用していますが、オプションです)方法を考え出しました。あなたが良いものを見つけたらお知らせください:

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 
    } 
関連する問題