我有以下委托,我需要测试tableView.beginUpdates()被调用。我正在使用XCTest和Swift 3。 您有任何想法或示例代码吗?
extension SomeListController: NSFetchedResultsControllerDelegate {
func controllerWillChangeContent(_ controller: NSFetchedResultsController<NSFetchRequestResult>) {
tableView.beginUpdates()
}
func controllerDidChangeContent(_ controller: NSFetchedResultsController<NSFetchRequestResult>) {
tableView.endUpdates()
}
}
答案 0 :(得分:0)
我最终确实弄明白了。 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)
}