在我当前的设置中,我只有一个用于域对象的构造函数(并且希望保持这种方式)。假设我的班级是这样的:

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。前女友我想要些
class PersonTest: XCTest

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

有人知道怎么做吗?

最佳答案

我通过子类化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
    }

关于ios - 在Swift中测试FIRDataSnapshot,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42385457/

10-10 20:47