Kotlin协程中的断言/回调

时间:2019-01-22 08:21:09

标签: unit-testing kotlin

对Kotlin来说还很陌生。 我正在测试一个HTTP客户端,该客户端异步执行调用并以回调作为调用方的参数。

现在,让我们假设调用方是单元测试。在INSIDE上声明回调显然不起作用,因为它在某种后台io线程中运行(使用Kluent进行断言,我真的很喜欢语法)。

client.query(identifier, uiCallback = {
        System.out.println("Found a total of ${it.total} entries with identifier!")
        signal.countDown()
        it.total shouldBe 1
    })

我可以将断言推迟到回调的外部,但是我认为这不是很优雅。

在具有Java的android上下文中,我会做类似“ runOnUIThread”(在RX之前)的操作。我还必须在android中使用该api,所以无论如何我都会遇到这个问题。

我一定想念sg。很基本的。无论如何,将junit用于kotlin是最新的技术还是有更好的方法?

编辑:该“信号”中有一个CountdownLatch等待异步执行。

编辑2:改造服务定义:

@GET("Entity")
fun query(@Query("identifier") identifier: Array<String?> = arrayOfNulls(0),
          @Query("_count") count:Int = 10): Call<ResponseBody>

0 个答案:

没有答案