3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

UnitTestにて、verifyでの比較が失敗する時の解決策

Posted at

初めに

今回、自分が仕事で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にするように実装
           }
       }

最後に

エラーログだけ見ると何がなんだかわかりづらいとは思いますが、解決策を見ると確かになぁと納得できる物だと思います。
備忘録程度なので、わかりづらい部分もあるかと思いますが何かのお役に立てれば幸いです

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?