2016-10-14 5 views
2

Я новичок в разработке iOS, и я создаю приложение, которое использует запрос Alamofire для HTTP. Мне нужно написать Unit test для нескольких вещей, таких как логин и вам нужна помощь. Я сделал несколько исследований о Stub, Mocks, а также прочитал несколько рамок, таких как Nocilla и OHTTPStubs, но я не могу начать. У меня есть контроллер входа, который получает регистрационную информацию, такую ​​как - имя пользователя, пароль из раскадровки и действие кнопки входа в систему. Я вызываю метод утилиты сервера. У меня есть служебный класс сервера, который реализует метод для создания сетевого запроса.Unit Testing iOS App, в котором используется Alamofire для сетевого запроса

@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) 
     } 
    } 
} 

Это сервер утилита класса

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 
    } 
} 

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

спасибо.

+0

Как упоминалось незавершенная сетевые вызовы (HTTP/HTTPS), вы можете начать с [Stubby DB] (https://github.com/NaturalIntelligence/StubbyDB). Ссылка на [Видеоурок] (https://youtu.be/7mA4-MXxwgk). Это может помочь вам протестировать ошибки, различные коды ответов, задержать вызов и т. Д. –

ответ

1

использование OHHTTPStubs

Его позволяет:

  • протестировать свои приложения с данными поддельными сетями (затушили из файла) и моделировать медленную сеть, чтобы проверить поведение приложений в плохих условиях сетей
  • записывайте единичные тесты, которые используют поддельные сетевые данные из ваших светильников.

И support swift 3.0 слишком

+0

Можете ли вы привести пример использования OHHTTPStubs с кодом, который я дал? Было бы очень полезно. –