繁体   English   中英

如何使用Swift单元测试NSFetchedResultsControllerDelegate(controllerWillChangeContent和controllerDidChangeContent)

[英]How do I unit test NSFetchedResultsControllerDelegate (controllerWillChangeContent and controllerDidChangeContent) using Swift

我有以下委托,我需要测试是否调用了tableView.beginUpdates()。 我正在使用XCTest和Swift3。您有任何想法或示例代码吗?

extension SomeListController: NSFetchedResultsControllerDelegate {



func controllerWillChangeContent(_ controller: NSFetchedResultsController<NSFetchRequestResult>) {

    tableView.beginUpdates()

}



func controllerDidChangeContent(_ controller: NSFetchedResultsController<NSFetchRequestResult>) {

    tableView.endUpdates()

}

}

最终我实际上找到了答案。 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM