所以我一直在将 kotlintest 与 mockk 结合使用,但是通过将其添加到 ProjectConfig 类中从单线程模式切换到多线程时遇到了问题:
override fun parallelism(): Int = Runtime.getRuntime().availableProcessors()
如果我以单一模式运行。我所有的测试都通过了,但就在我切换到并行性时,其中一些使用模拟的测试开始失败。
我有各种方法,例如:
override fun afterTest(testCase: TestCase, result: TestResult) {
clearAllMocks()
}
所以我想像这样的方法可能会通过在验证块之前清除所有模拟数据而导致我的模拟失败。
有没有办法强制不同线程上的测试使用他们自己的 Mockk 实例并强制 clearAllMocks() 方法只清除调用线程上的模拟?如果没有,还有哪些其他代码实践可以帮助解决这些问题?