私はいくつかのテスト駆動型開発を行っており、次のように Mockito verify() 呼び出しをテスト ケースに追加しました (無害なコードを保護するために名前を変更しました)。
Api api = mock(Api.class);
Thing thing = mock(Thing.class);
when(thing.getId()).thenReturn(1);
// later...
verify(api).doAThingWithAThingId(thing.getId())
コードに呼び出しを追加していませんがapi.doAThingWithAThingId()
、このテスト ケースはパスします。しかし、これを行うと...
int id = thing.getId();
verify(api).doAThingWithAThingId(id);
検証は期待どおりに失敗します。この動作の原因は何ですか?
(記録として、これは少し古いバージョンの Mockito 1.8.4 を使用しています。)