【发布时间】:2023-04-06 12:15:02
【问题描述】:
我是 iOS 开发新手,我正在构建一个使用 Alamofire 进行 HTTP 请求的应用程序。我需要为登录等一些事情编写单元测试并需要帮助。我做了一些关于 Stub、Mocks 的研究,还阅读了一些框架,如 Nocilla 和 OHTTPStubs,但我无法开始。我有一个登录控制器,它获取登录信息,例如 - 用户名、来自故事板的密码和登录按钮操作,我调用服务器实用程序方法。我有一个服务器实用程序类,它实现了发出网络请求的方法。
@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
}
}
如果我不想进行网络调用,如何对以下代码进行单元测试。请帮助我,因为我被困了很久。
谢谢。
【问题讨论】:
-
正如你提到的存根网络调用(HTTP/HTTPS),你可以从Stubby DB开始。 Video tutorial 的链接。它可以帮助您测试错误案例、各种响应代码、延迟调用等。
标签: ios unit-testing uiviewcontroller alamofire stub