【发布时间】:2016-08-11 17:16:50
【问题描述】:
我写了一个测试来验证一个函数是否被调用:
func test_getTaskLists_doNotCreateOrUpdateTaskListToStorageWhenSynchedLocally() {
...
let (datasource, restAPI, fakeTaskListStorage) = ...
datasource.getTaskLists() { (taskLists, error) -> Void in
...
XCTAssertEqual(1, fakeTaskListStorage.readAllInvocationCount)
...
}
...
}
该函数被模拟以绕过超级实现,问题是该函数返回一个我无法构建/模拟以返回有效对象的结果,因此编译器停止抱怨......我知道我可以只调用 super.readAll() 但在这里我实际上想将我的测试数据(fakeTaskLists)转换为一个假的 Result 对象,所以每个人都很高兴......不确定这是否可能
class FakeTaskListsStorageRealm : TaskListStorageRealm {
var fakeTaskLists:[TaskList]?
override func readAll() -> RealmSwift.Results<TaskList> {
readAllInvocationCount += 1
//Here I want to return fakeTaskLists somehow...
}
}
【问题讨论】:
标签: swift unit-testing realm