Kei*_*son 7 automated-tests scala cats-effect
我正在尝试将Mules转换为 Cats Effect 3 (CE3)。由于它是一个缓存库,在它的测试中它需要(虚拟)时间来测试项目是否会过期。它目前正在大量使用cats.effect.laws.util.TestContext
,它允许在不实际睡眠的情况下推进虚拟时钟tick
。TestContext
CE3 中不存在(据我所知),但我总是不愿意将sleep
调用放入测试中。IO
为这个特定案例滚动我自己的前景是一个令人生畏的前景。当然,这是人们更普遍的问题。但是,我无法TestContext
在迁移指南中找到参考。
这种情况是否有已知的升级路径?
从克里斯达文波特一些帮助的不和谐,我发现TestContext
仍然存在,但已经移动cats.effect.laws.util
到cats.effect.kernel.testkit
。它存在于自己的项目和工件中,因此您需要添加一个依赖项(SBT 语法):
"org.typelevel" %% "cats-effect-kernel-testkit" % catsEffectV % Test,
Run Code Online (Sandbox Code Playgroud)
此外,如果您没有使用laws
包中的任何其他内容,那么您将希望删除该依赖项,这将类似于:
"org.typelevel" %% "cats-effect-laws" % catsEffectV % Test,
Run Code Online (Sandbox Code Playgroud)
大概这就是他们移动它的原因:因为它不是特定于法律的。
但是,我并没有成功地获得虚拟时间来通过我的测试,并且遗憾地IO.sleep
现在用s强制它。:/
归档时间: |
|
查看次数: |
264 次 |
最近记录: |