在Swift中测试FIRDataSnapshot

时间:2017-02-22 07:43:55

标签: ios swift firebase firebase-realtime-database xctest

在我当前的设置中,我只有一个构造函数(并且希望保持这种方式)用于我的域对象。说我的课看起来像这样:

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(...)
   }

有人想出怎么做?

1 个答案:

答案 0 :(得分:0)

我通过子类化FIRDataSnapshot找到了一种方法(使用SwiftyJson,但那是可选的)。如果你找到更好的一个,请告诉我:

var number;
var maxNumber = 5;
var usedNumbers = [];

function getUnusedRandomNumber(){
    // keep generating a random number, until you find one that has not been used
    do{
      var randomNumber = getRandomNumber();
    }
    while(usedNumbers.indexOf(randomNumber) != -1);
    
    // store used numbers into array
    usedNumbers.push(randomNumber);
    return randomNumber;
}

function getRandomNumber() {
    var randomNumber = Math.round(Math.floor((Math.random() *     maxNumber) + 1)); 
    return randomNumber;
}

alert(getUnusedRandomNumber());
alert(getUnusedRandomNumber());
alert(getUnusedRandomNumber());
alert(getUnusedRandomNumber());
alert(getUnusedRandomNumber());