1

そのため、kotlintest を mockk と組み合わせて使用​​してきましたが、これを ProjectConfig クラスに追加して、シングル スレッド モードからマルチ スレッド モードに切り替えるときに問題が発生しました。

override fun parallelism(): Int = Runtime.getRuntime().availableProcessors()

シングルモードで実行した場合。すべてのテストに合格しましたが、並列処理に切り替えると、モックを使用する一部のテストが失敗し始めました。

私はいたるところに次のようなメソッドを持っています:

override fun afterTest(testCase: TestCase, result: TestResult) {
    clearAllMocks()
}

したがって、これらのようなメソッドが検証ブロックの前にすべてのモック データをクリアすることで、モックが失敗する可能性があると思います。

異なるスレッドでのテストを強制的に独自の Mockk インスタンスを使用し、clearAllMocks() メソッドを強制して、呼び出しスレッドでモックのみをクリアする方法はありますか? そうでない場合、これらの問題に役立つ他のコード プラクティスは何ですか?

4

1 に答える 1