2015-10-13 63 views
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) 

回答

6

請參見下面的例子整個響應:

let result = Result<String, NSError>.Success("Hello") 

result.isSuccess // prints true 
result.value // prints "Hello" 

希望這有助於

+0

非常感謝!這工作完美..將更新我的問題與完整的迴應 –