Verifique se na fila de envio correta no Swift 3
Eu tenho alguns testes de unidade nos quais gostaria de testar se um retorno de chamada é chamado na fila de envio correta.
No Swift 2, comparei o rótulo da fila atual com a minha fila de teste. No entanto, no Swift 3, oDISPATCH_CURRENT_QUEUE_LABEL
constante não existe mais.
Eu encontrei odispatch_assert_queue
função. O que parece ser o que eu preciso, mas não sei como chamá-lo.
Código My Swift 2:
let testQueueLabel = "com.example.my-test-queue"
let testQueue = dispatch_queue_create(testQueueLabel, nil)
let currentQueueLabel = String(UTF8String: dispatch_queue_get_label(DISPATCH_CURRENT_QUEUE_LABEL))!
XCTAssertEqual(currentQueueLabel, testQueueLabel, "callback should be called on specified queue")
Atualizar:
Fiquei confuso com a falta de preenchimento automático, mas é possível usar__dispatch_assert_queue
:
if #available(iOS 10.0, *) {
__dispatch_assert_queue(test1Queue)
}
Embora isso funcione para testes de unidade, interrompe irritantemente todo o processo com umEXC_BAD_INSTRUCTION
em vez de apenas falhar em um teste.