Утверждения в котлин сопрограммы / обратный вызов - PullRequest
0 голосов
/ 22 января 2019

Довольно новый для котлинаЯ тестирую 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...