Ios 单元测试阿拉莫菲尔&x2B;与Mockingjay的约定书

Ios 单元测试阿拉莫菲尔&x2B;与Mockingjay的约定书,ios,swift,unit-testing,alamofire,promisekit,Ios,Swift,Unit Testing,Alamofire,Promisekit,我的项目中有以下代码: import PromiseKit import SwiftyJSON class ChartHandler { var alamofireManager: Alamofire.Manager? init() { let configuration = NSURLSessionConfiguration.defaultSessionConfiguration() configuration.timeoutIntervalForRequest = 30

我的项目中有以下代码:

import PromiseKit
import SwiftyJSON

class ChartHandler {
var alamofireManager: Alamofire.Manager?

init() {
    let configuration = NSURLSessionConfiguration.defaultSessionConfiguration()
    configuration.timeoutIntervalForRequest = 30

    self.alamofireManager = Alamofire.Manager(configuration: configuration)
}

func requestTabsJSONWithLinkKey(linkKey: String) -> Promise<JSON> {
    return Promise { fulfill, reject in

        alamofireManager?.request(.GET, "https://.../\(linkKey)/").responseJSON {
            response in

            switch response.result {
            case .Success:
                if let value = response.result.value {
                    fulfill(JSON(value))
                }
            case .Failure(let error):
                if error.code == NSURLErrorTimedOut {
                    reject(RequestResult.TimedOut)
                } else {
                    reject(RequestResult.ConnectionFailed)
                }
            }
        }
    }
}
}

问题如下:执行进入代码的“错误”分支,而不是“然后”,这是存根的结果,在这种情况下不能正常工作,我不知道如何解决它。有什么建议吗?

我发现阿拉莫菲尔经理的存根不起作用。应该起作用。我有相同的配置,它工作得很好
func testChartHandlerTabsRequest() {
    let expectation = expectationWithDescription("tabs json test")
    let body = ["json": "test"]
    stub(everything, builder: json(body))

    chartHandler.requestTabsJSONWithLinkKey("test_link_key").then { jsonFromRequest -> Void in
        print(jsonFromRequest)
        XCTAssertTrue(jsonFromRequest.dynamicType == JSON([String: AnyObject]()).dynamicType, "Pass")
        expectation.fulfill()
    }.error { err in
        print("Error: \(err)")
    }
    waitForExpectationsWithTimeout(5.0, handler: nil)
}