Довольно новый для котлинаЯ тестирую http-клиент, который выполняет вызовы асинхронно и принимает обратный вызов в качестве аргумента от вызывающей стороны.
Теперь давайте предположим, что вызывающая сторона является модульным тестом.Утверждение INSIDE обратный вызов не работает, очевидно, потому что он работает в некотором фоновом потоке ввода-вывода (используя Kluent для утверждений, мне действительно нравится синтаксис).
client.query(identifier, uiCallback = {
System.out.println("Found a total of ${it.total} entries with identifier!")
signal.countDown()
it.total shouldBe 1
})
Я мог бы отложить утверждение внеобратный вызов, но я думаю, что это не очень элегантно.
В контексте Android с Java, я бы сделал что-то вроде "runOnUIThread" (до RX).Я также должен использовать этот API в Android, так что я все равно столкнусь с этой проблемой.
Я, должно быть, скучаю по sg.очень простой.Является ли современное использование junit для kotlin в любом случае или есть лучший путь?
РЕДАКТИРОВАТЬ: Этот "сигнал" есть CountdownLatch для ожидания асинхронного выполнения.
РЕДАКТИРОВАТЬ 2: Определение службы дооснащения:
@GET("Entity")
fun query(@Query("identifier") identifier: Array<String?> = arrayOfNulls(0),
@Query("_count") count:Int = 10): Call<ResponseBody>