mockitoでオブジェクト属性値を検証する 質問する

mockitoでオブジェクト属性値を検証する 質問する

mockito でモックしたいメソッド呼び出しがあります。まず、メソッドが呼び出されるオブジェクトのインスタンスを作成し、挿入しました。私の目的は、メソッド呼び出しでオブジェクトの 1 つを検証することです。

mockito を使用して、モック メソッドが呼び出されたときにオブジェクトとその属性をアサートまたは検証する方法はありますか?

Mockito.verify(mockedObject)
       .someMethodOnMockedObject(
              Mockito.<SomeObjectAsArgument>anyObject())

代わりに、anyObject()引数オブジェクトに特定のフィールドが含まれているかどうかを確認したい

Mockito.verify(mockedObject)
       .someMethodOnMockedObject(
              Mockito.<SomeObjectAsArgument>**compareWithThisObject()**)

ベストアンサー1

Mockitoに追加された新機能により、これがさらに簡単になりました。

ArgumentCaptor<Person> argument = ArgumentCaptor.forClass(Person.class);
verify(mock).doSomething(argument.capture());
assertEquals("John", argument.getValue().getName());

Mockitoを見てみましょうドキュメンテーション


複数のパラメータがあり、単一のパラメータのみをキャプチャする必要がある場合は、他の ArgumentMatchers を使用して残りの引数をラップします。

verify(mock).doSomething(eq(someValue), eq(someOtherValue), argument.capture());
assertEquals("John", argument.getValue().getName());

おすすめ記事