gpt4 book ai didi

kotlin - 如何在 Kotlin Spek 测试中组织多个协程和期望 block ?

转载 作者:行者123 更新时间:2023-12-02 12:43:40 26 4
gpt4 key购买 nike

我写了一个失败的 Spek 测试,因为我对涉及多个协程和 it 的执行顺序做出了错误的假设。职能:

given("a test") {
runBlocking { print("a") }

it("block 1") {
runBlocking { print("b") }
}

runBlocking { print("c") }

it("block 2") {
runBlocking { print("d") }
}
}

我期待 abcd待打印,但 acbd实际打印。

我应该如何编写这个测试,以便它可以按预期顺序进行视觉读取和执行?

最佳答案

Spek 基本上是使用 lambdas 编写的,因此为了让 Spek 了解测试树,它必须执行它 - 这称为发现阶段。在那个阶段组范围(给定,描述,上下文)被执行,在你的情况下 runBlocking { print("a") } 和 runBlocking { print("c") } 被调用。一旦知道测试树,Spek 现在可以进入执行阶段。在这个阶段,Spek 将执行传递给 test (it) 和 action (on) 范围的 lambdas。

作为解决您的问题的方法,您应该使用操作范围 on 而不是给定的。

on("a test") {
runBlocking { print("a") }

it("block 1") {
runBlocking { print("b") }
}

runBlocking { print("c") }

it("block 2") {
runBlocking { print("d") }
}
}

关于kotlin - 如何在 Kotlin Spek 测试中组织多个协程和期望 block ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46940718/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com