Я сейчас пишу тесты для небольшой части платформы OSX, над которой я работаю.Тесты написаны с использованием пакетов Quick
и Nimble
.Сам тест очень прост:
class OrderbookTestKraken: QuickSpec {
let kraken = Kraken()
override func spec() {
let coin = Coin(name: "DOGE", ask: 0.0, bid: 0.0, last: 0.0, bidSize: 0.0, askSize: 0.0)
describe("When an order book is requested") {
it("it should create an orderbook successfully") {
self.kraken.getOrderbook(coin: coin) { (error, orderbook) in
expect(orderbook).notTo(beNil())
}
}
}
}
}
И всякий раз, когда я его запускаю, тест мгновенно проходит.Даже если есть:
1) Точка останова в методе getOrderbook
моего Kraken
экземпляра.2) nil
возвращается в переменной orderbook
, которая используется в операторе expect
.
Метод getOrderbook
выглядит следующим образом:
func getOrderbook(coin: Coin, onCompletion: @escaping (Error?, Orderbook?) -> Void) {
Alamofire.request("\(publicApiUrl ?? "")/Depth",
method: .get,
parameters: ["pair": "\(coin.name)XBT", "count": 3],
encoding: URLEncoding.default,
headers: nil).validate().responseJSON { response in
// There's a breakpoint here.
onCompletion(nil, nil)
}
}
Итак, онвсегда возвращает nil
в обратном вызове, и существует неуправляемая точка останова, но тест всегда завершается успешно.Когда я попробовал какую-то отладку пещерного человека и поставил точку останова над запросом Alamofire
, точка останова действительно сработала.
Это известная проблема, или я что-то наблюдаю?
Спасибо.