kotlin多平台库简单http get请求测试

kotlin multiplatform library simple http get request test

我是 kotlin 多平台库的新手。 我想发出一个简单的 HTTP get 请求并测试它是否有效。 这是我到目前为止所拥有的。 这是在 commonMain 包中

import io.ktor.client.*
import io.ktor.client.request.*

object HttpCall {
    private val client: HttpClient = HttpClient()
    suspend fun request(url: String): String = client.get(url)
}

这是我的测试

@Test
    fun should_make_http_call() {

        GlobalScope.launch {
            val response = HttpCall.request("https://whosebug.com/")
            println("Response: ->$response")
            assertTrue { response.contains("Stack Overflow - Where Developers Learn") }
            assertTrue { response.contains("text that does not exist on Whosebug") }
        }

现在,由于第二个断言,这应该会失败,但事实并非如此。 无论我做什么,测试总是通过。 并且打印响应也不起作用 我在这里做错了什么?

测试函数将在单线程中运行,如果函数结束没有失败,则测试通过。 GlobalScope.launch 在不同的线程中启动操作。主测试线程将在网络调用有机会 运行.

之前完成

应该 runBlocking 之类的东西来调用它,但是在 Kotlin native 上测试一般的协程,特别是 ktor,并不容易,因为没有简单的让挂起的函数在当前线程上继续的方法。