第 64 课2026.09.30
在测试中把任务完成时刻变成可回归的断言。
第 64 课:断言虚拟时间完成点
- 日期:2026-09-30
- 课程序号:第 64 课
- 知识点:
currentTime与assertEquals
用途或适用场景
在测试中把任务完成时刻变成可回归的断言。
核心概念
currentTime 读取测试调度器的虚拟毫秒数;在 runCurrent() 后断言它不会继续前进。
最小代码或操作示例
kotlin
@OptIn(ExperimentalCoroutinesApi::class)
@Test
fun recordsFinishTime() = runTest {
launch { delay(500) }
advanceTimeBy(500)
runCurrent()
assertEquals(500L, currentTime)
}3~5 分钟练习
把延迟改为 750 毫秒,并同步修改推进量与断言。
参考答案
三处都改为 750,执行边界任务后 currentTime 为 750L。
与上一课的联系
第 63 课记录了任务完成时刻;本课只把该时刻写成断言;下一课可比较两个任务的完成时刻。
时效校验
时效校验:2026-09-30(kotlinx-coroutines-test 1.11.0;currentTime 仍为实验性 API,示例已显式 opt-in,未见废弃标记。)