2

私はいくつかのテスト駆動型開発を行っており、次のように 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 を使用しています。)

4

1 に答える 1