2015-10-15 1 views
2

Я пишу блок-тесты для моего проекта и имею много проблем, так как это первый раз, когда я пишу тестовые примеры. Мое приложение - это типичный логин, а затем приложение на основе навигации. Я пишу тестовый пример для viewcontroller, где я устанавливаю некоторые значения в viewdidload. Эти значения извлекаются из NSUserdefaults и из предыдущего диспетчера представлений. Я создал объект ViewController в настройках методы() из XUnit следующим образом:Настройки значения viewDidLoad от XCTest

let storyboard: UIStoryboard = UIStoryboard(name: "Main", bundle: NSBundle(forClass: self.dynamicType)) 
    viewController = storyboard.instantiateViewControllerWithIdentifier("AlertDetailsViewController") as! AlertDetailsViewController 

Теперь, когда я бег установки есть авария, поскольку нет ни одного объекта, который должен быть получен этим классом перед загрузкой. Есть ли способ, с помощью которого я могу установить значения для моего диспетчера представлений перед загрузкой viewdidLoad()? Также как проверить его на nsuserdefaults. Мне нужно сохранить/получить значения из nsuserdefault. Есть ли способ издеваться над этим?

С уважением
Панкай

ответ

0

Я знаю, что это поздно reply..but Это для новых зрителей ...

var alertdetailViewController: UIViewController? 
weak var alertDetailViewControllerObj: AlertDetailsViewController? 

override func setUp() { 
    super.setUp() 
    // Put setup code here. This method is called before the invocation of each test method in the class. 

    alertdetailViewController = UIStoryboard(name: "AlertDetailsViewController", bundle: nil).instantiateViewController(withIdentifier: "AlertDetailsViewController") 

    ashTestResultViewControllerObj = alertdetailViewController as? AlertDetailsViewController 

}

XCTAssertNotNil(alertdetailViewController?.viewDidLoad()) 

viewDidLoad из alertdetailViewController будет старт Выполнено. Вы можете установить точки останова и отладить свой метод viewdidload. Если какие-либо объекты не инициализируются в методе Viewcontroller'viewDidLoad, вы можете ожидать краха. Вы не можете справиться с этим.