[英]How do I unit test NSFetchedResultsControllerDelegate (controllerWillChangeContent and controllerDidChangeContent) using Swift
I have the following delegate and I need to test that tableView.beginUpdates() got called. 我有以下委托,我需要测试是否调用了tableView.beginUpdates()。 I'm using XCTest and Swift 3. Do you have any ideas or sample code?
我正在使用XCTest和Swift3。您有任何想法或示例代码吗?
extension SomeListController: NSFetchedResultsControllerDelegate {
func controllerWillChangeContent(_ controller: NSFetchedResultsController<NSFetchRequestResult>) {
tableView.beginUpdates()
}
func controllerDidChangeContent(_ controller: NSFetchedResultsController<NSFetchRequestResult>) {
tableView.endUpdates()
}
} }
I actually figured it out eventually. 最终我实际上找到了答案。 The endsUpdates test is pretty much the same pattern.
endsUpdates测试几乎是相同的模式。
func test_controllerWillChangeContent_beginsUpdates() {
class MockTableView: UITableView {
var gotCalled: Bool = false
override func beginUpdates() {
gotCalled = true
}
}
let tableView: MockTableView = MockTableView()
controller.tableView = tableView
let _ = controller.view
controller.controllerWillChangeContent(controller.fetchedResultsControler as! NSFetchedResultsController<NSFetchRequestResult>)
XCTAssertTrue(tableView.gotCalled)
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.