![](/img/trans.png)
[英]How to unit test NSFetchedResultsControllerDelegate?
[英]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.