2017-04-18 4 views
0

Ist jemand wissen, in Unit-Tests, wie können wir testen, Tasten, Funktion und Tableview in Swift 3.Probleme bei Testeinheit mit

Beispiel Ich habe eine Schaltfläche Aktion:

@IBAction func BellAction(_ sender: Any) { 
    let searchVC = self.storyboard?.instantiateViewController(withIdentifier:StoryBoardIDs.Notification.rawValue) 
    self.navigationController?.pushViewController(searchVC!, animated: true) 
} 

Um dies zu testen, :

let home = HomeDashnboard() // This is my class 
home.viewDidLoad() // test viewDidLoad() 
home.BellAction() // shows an error 

Antwort

2

Leider kann man nicht direkt anrufen/manipulieren Ihre view-Controller, Ansichten, usw., so. Diese Klassen Lifecycle/Flow werden von UIKit gesteuert und zu sehr bestimmten Zeitpunkten während der regulären Ausführung Ihrer iOS App aufgerufen. Es wäre sehr fehleranfällig sein Versuch, ein solches Verhalten zu emulieren selbst :-(

Aber, wenn Sie Ihre App UI testen möchten, empfehle ich einen genaueren Blick in die UI Testing framework auch von Xcode zur Verfügung gestellt unter:

UI-Tests geben Ihnen die Möglichkeit, mit der Benutzeroberfläche Ihrer Anwendung, um die Eigenschaften und den Zustand der UI-Elemente zu finden und zu interagieren.

UI Tests umfassen UI Aufnahme zu validieren, die Ihnen die Möglichkeit, Code zu generieren gibt Das übt die Benutzeroberfläche Ihrer App genauso aus wie Sie und Sie können sie erweitern n, um UI-Tests zu implementieren. Dies ist eine großartige Möglichkeit, um schnell mit dem Schreiben von UI-Tests zu beginnen.

+0

paulo, ich habe es in UI-Tests, aber Probleme zu testen Code in Unit-Tests gegenüber –

+0

@GurwinderSingh Wenn Sie wirklich Unit-Tests benötigen, könnte es eine Überlegung wert, solche Tests von UI-Schicht zu splitten. Beispiel: Testen Sie nur den Code auf Modellebene. –

Verwandte Themen