2016-10-14 1 views
2

Ich bin neu in iOS-Entwicklung und ich baue eine App, die Alamofire für HTTP-Anfrage verwendet. Ich muss Unit-Test für einige Dinge wie Login schreiben und brauche Hilfe damit. Ich habe etwas über Stub, Mocks recherchiert und auch über einige Frameworks wie Nocilla und OHTTPStubs gelesen, aber ich kann nicht anfangen. Ich habe einen Login-Controller, der Login-Informationen wie - Benutzername, Passwort aus Storyboard und auf Login-Button-Aktion Ich rufe eine Server-Utility-Methode. Ich habe eine Server-Dienstprogramm-Klasse, die die Methode zum Ausführen von Netzwerkanforderung implementiert.Unit Testing iOS App, die Alamofire für Netzwerkanforderung verwendet

@IBAction func logIn(sender: AnyObject?) { 

    server.loginWith(username, password: password, server:url) { (user, error) in 
     dispatch_async(dispatch_get_main_queue()) { 
      if let err = error { 
       self.handleError(err) 
       return 
      } 
      self.performSegueWithIdentifier("unwind", sender: self) 
     } 
    } 
} 

Dies ist Server Utility-Klasse

class Server { 
func loginWith(username:String, password:String, server:String, callback:CompleteHandler) { 
    Alamofire.request(.GET, server + "/login", headers:defaultHeaders).validate().responseJSON {response in 
     var err:NSError? 
     var user:Object? 
     defer { 
      dispatch_group_leave(self.dispGrp) 
      callback(user:user, error: err) 
     } 

     switch response.result { 
     case .Success(): 
      //gives me user data 

     case .Failure(let error): 
      // gives me error 
    } 
} 

Wie kann ich Unit-Test der folgende Code versehen Ich möchte nicht ein Netzwerk Anruf tätigen. Bitte hilf mir wie ich seit langem feststecke.

Vielen Dank.

+0

Wie Sie Netzwerk Anrufe Stummel erwähnt (HTTP/HTTPS), können Sie mit [Stubby DB] (https://github.com/NaturalIntelligence/StubbyDB) starten. Link für [Video-Tutorial] (https://youtu.be/7mA4-MXxwgk). Es kann Ihnen helfen, Fehlerfälle, verschiedene Antwortcodes, Verzögerungsaufruf usw. zu prüfen. –

Antwort

1

Verwendung OHHTTPStubs

Seine ermöglichen:

  • Test Ihre Anwendungen mit gefälschten Netzwerkdaten (aus Datei Stub) und langsame Netzwerke simulieren, Ihre Anwendungsverhalten in schlechten Netzwerkbedingungen zu überprüfen
  • Schreiben Sie Komponententests, die gefälschte Netzwerkdaten von Ihren Geräten verwenden.

Und support swift 3.0 zu

+0

Können Sie mir ein Beispiel geben, wie man OHHTTPStubs mit dem Code benutzt, den ich gab? Es wäre wirklich hilfreich. –