2
我在我的iOS應用程序中使用Alamofire進行API調用。我試圖在測試中存儲這些數據,我試過Mockingjay和OHHTTPStubs,但都沒有工作,所以我現在試圖將我收到的響應存根。爲測試創建Alamofire響應
我需要創建一個響應與虛擬數據,我可以傳遞給我的其他方法。下面是在Alamofire Response對象初始化:
public init(request: NSURLRequest?, response: NSHTTPURLResponse?, data: NSData?, result: Result<Value, Error>)
但是我不知道如何創建該對象,因爲我無法創建一個結果。下面是一些從Alamofire結果類:
public enum Result<Value, Error: ErrorType> {
case Success(Value)
case Failure(Error)
/// Returns `true` if the result is a success, `false` otherwise.
public var isSuccess: Bool {
switch self {
case .Success:
return true
case .Failure:
return false
}
}
/// Returns `true` if the result is a failure, `false` otherwise.
public var isFailure: Bool {
return !isSuccess
}
/// Returns the associated value if the result is a success, `nil` otherwise.
public var value: Value? {
switch self {
case .Success(let value):
return value
case .Failure:
return nil
}
}
/// Returns the associated error value if the result is a failure, `nil` otherwise.
public var error: Error? {
switch self {
case .Success:
return nil
case .Failure(let error):
return error
}
}
}
我似乎無法制定出如何將結果傳遞到響應對象,在它的值,來表示API響應。
我想我對enums感到困惑,以及它們如何在它們中也有變量。
任何人都可以幫我建立一個響應嗎?
謝謝。
ANSWERED
感謝您的回答......這裏是你如何創建一個JSON響應
let london : NSDictionary = ["name" : "london", "latitude" : 23.00, "longitude" : 0.0, "id" : "london_gb"]
let paris : NSDictionary = ["name" : "paris", "latitude" : 30.00, "longitude" : -1.0, "id" : "paris_fr"]
let locations = NSArray(array: [london, paris])
let result = Result<AnyObject, NSError>.Success(locations)
var response = Response(request: NSURLRequest(), response: NSHTTPURLResponse(), data: NSData(), result: result)
非常感謝!這工作完美..將更新我的問題與完整的迴應 –