状況
パターン網羅のために大量の呼び出しを行うようなテストを追加した所、java.lang.OutOfMemoryErrorでテストが失敗する状況が生じました。
外形的な挙動としては、テスト関数が1つ終わってもメモリが解放されず、テストが進むにつれメモリ使用量も線形に伸びていました。
また、CPUにも大きめの負荷がかかっているようでした。
調査した所、これらのリソース消費増大はMockKでmock/spyした内容を大量に呼び出した場合に起きていました。
問題の起きたプロジェクトはSpringBootを用いていますが、テスト用のBeanとして使われているmock(= 元から大量呼び出しが有った)でこの症状が発生していました。
また、1テストに閉じたmockであっても、数十 ~ 数百万回以上呼び出した場合には500MB以上のメモリ消費が生じていました。
MockKの開いているイシューにはこのような問題の報告が無かったため、もしかするとSpringBootTest/SpringMockKに関係が有るのかもしれません。
少なくともバージョン1.12.1と1.13.10(執筆時点の最新最新)で発生を確認しています。
対処
最新でも問題が生じていたため、一旦大量呼び出しが想定されるオブジェクトではMockKを使わない方針としました。