私はかなり長い間JMockitを使用しています。本当に好きです。しかし、私は解決できないような問題に直面しました。下記のスニペットでKotlinのテストコードを見て、Kotlinの生産コードをテストしてください。JMockitとKotlinでオブジェクトをキャプチャする
@Injectable
lateinit var experimentStorage: ExperimentStorage
...
val experimentCaptor = mutableListOf<Experiment>()
object : Verifications() {
init {
experimentStorage.save(withCapture(experimentCaptor))
}
}
私は私のテストを実行すると、私は次のエラーを取得する:
java.lang.IllegalStateException: withCapture(experimentCaptor) must not be null
私は以下のようにキャプチャを交換するとき、私のテストが成功したので、私は、私の生産コードが正しくストレージを行使する100%確信しています:
object : Verifications() {
init {
experimentStorage.save(withAny(experiment))
}
}
誰もJMockit(1.28)でKotlinでパラメータを取得した経験はありますか?私は間違って何をしていますか?私はそれがinit
ブロックと関係があると思います。なぜなら、Javaでは静的なスペースを使用するからです。