2017-02-22 29 views
1

В моей текущей установке у меня есть только один конструктор (и хочу сохранить его таким образом) для моих объектов домена. Скажем, мой класс выглядит так:Тестирование FIRDataSnapshot в Swift

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

Я понял способ (используя SwiftyJson, но это необязательно) путем подкласса FIRDataSnapshot. Пожалуйста, дайте мне знать, если вы найдете лучший вариант:

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 
    } 

 Смежные вопросы

  • Нет связанных вопросов^_^