2015-12-07 2 views
3

Я хочу проверить, удалю ли все наблюдатели ключевых значений в deinit контроллера моего представления.Как проверить deinit viewController

В тестовом классе я определил следующий метод, чтобы начать жизненный цикл вида контроллера

func startLifecycle() { 
    _ = viewController.view 
    } 

В моем методе испытания я пытаюсь вызвать deinit просто присвоив ноль в мой взгляде экземпляр контроллера

testViewController = nil 
XCTAssert for stuff... 

Но deinit не вызывается, когда я выполняю свой тест. Я не вижу очевидных циклов удержания кода моего VC, что больше, когда я запускаю код в своем приложении, а не тестовую среду, вызывается deinit, поэтому не похоже, что что-то удерживает контроллер вида в памяти.

Каков правильный способ освобождения контроллера просмотра при тестировании?

ответ

1

Я сделал небольшой тест. Когда я использую стандартный Single View Application и добавьте следующие строки в ViewController:

var value: Int? = 1 
deinit { 
    value = nil 
} 

и запустить следующий тест:

func testExample() { 
    var viewController: ViewController? = ViewController() 
    XCTAssertEqual(viewController?.value, 1) 
    viewController = nil 
} 

Deinit запускается на выполнение с помощью теста (проверить с помощью контрольной точки в Deinit).

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

  • Нет связанных вопросов^_^