我如何编写单元测试,以确保功能失败并在成功之前进行几次重试? 我的功能看起来像这样: 有趣的runworkflow(数据:Promise

问题描述 投票:0回答:0

runWorkflow

是自己的文件,不在类中。
withRetries
是来自外部库的函数,它将反复重新运行内部块,直到

data.get().timeout

分钟到期。 
client
是静态导入。
this是
runAction
(它在一个单独的文件中,也不是类的一部分):
internal fun runAction(data: Data, client: Client): Promise<Data> {
   doSomethingWithClientOrData()
   return somethingElse()
}

我需要测试时,当调用时,它会进行重试。我无法嘲笑或验证对

runWorkflow

本身的呼叫。
我认为我可以通过嘲笑对

withRetries
的呼叫来模拟重试行为,并在n运行后成功进行几次失败。然后,我将验证
runAction

成功返回。但是,这种行为看起来与仅被调用一次完全相同,然后在该呼叫上取得成功。 我不确定会强制执行什么样的测试,即通过重试来调用

runWorkflow
,或者如何模拟对
runAction
的呼叫。

弥补您正在使用Mockk:
在那里,您可以在那里设置一系列响应。
例如,您可以设置一个模拟以失败两次,然后成功。
runWorkflow
    

kotlin unit-testing junit junit5
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.