2016-12-17 1 views
1

У меня есть следующий делегат, и мне нужно проверить, вызван ли вызов tableView.beginUpdates(). Я использую XCTest и Swift 3. Есть ли у вас какие-либо идеи или примеры кода?Как выполнить единичный тест NSFetchedResultsControllerDelegate (controllerWillChangeContent и controllerDidChangeContent) с помощью Swift

extension SomeListController: NSFetchedResultsControllerDelegate { 



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

    tableView.beginUpdates() 

} 



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

    tableView.endUpdates() 

} 

}

ответ

0

я на самом деле понял это в конце концов. Тест endUpdates похож на тот же шаблон.

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) 

} 
Смежные вопросы