初めに
今回、自分が仕事でUnit testを書いていたときに起こったエラーに大きくつまづいたので備忘録として書かせていただきます。
早速ですがエラー内容としては下記の様なものでした
Verification failed: call 1 of 1: 受け取った比較対象. Only one matching call to 用意した比較対象 happened, but arguments are not matching:
[0]: argument: 受け取った比較対象のインスタンスなど詳細情報, matcher: 用意した比較対象のインスタンスなど詳細情報, result: -
では、なぜこの様なエラーが起きてしまうのか。
引数のクラスがdataクラスではないため、equlsが実装されていなくて、引数の比較が失敗するからです
解決策
では、どの様に解決すべきなのかです。
実はものすごく単純なもので比較をこちらが作って仕舞えばいいのです。
実装方法は下記になります
verify {
match {
// ここに比較を自分で作成、意図した物が帰ってこなかった場合はfalseにするように実装
}
}
最後に
エラーログだけ見ると何がなんだかわかりづらいとは思いますが、解決策を見ると確かになぁと納得できる物だと思います。
備忘録程度なので、わかりづらい部分もあるかと思いますが何かのお役に立てれば幸いです