我通过添加 kotlin 协程更改了部分代码。这就是我现在的功能:
fun deleteDataFromDb(@PathVariable id: String) {
val user = authUser.user
GlobalScope.launchWithMdc {
JwtContext(user).use {
dataService.deleteDataFormDb(id)
}
}
}
我的一项测试不起作用。这是其中的一部分:
deleteDataFromDb(id).andExpect(
MockMvcResultMatchers.status().isOk
)
getDataFromDb(id).andExpect(
MockMvcResultMatchers.status().isNotFound
) //here is an error
我的测试不起作用的原因很简单。 deleteDataFromDb 该函数在执行检查之前并未结束。
处理这种延迟的最佳做法是什么?
嗯,对于初学者来说,永远不要使用
GlobalScope
。 使用您控制的协程作用域——通常是一个测试作用域,您可以在其中等待所有任务结束。