JUnitで、モック化したインスタンスの中のprivate fieldの内容を検証したい
いつもお世話になっております。
掲題についてご相談させてください。
以下のようなソースコードがあったとします。
試験対象のコード
public class テスト対象のクラス{
@Inject
private モック化したいクラス セッション;
public boolean テスト対象のメソッド(){
// ...適当な処理...
セッション.getMap().put("テストKey", "テストValue");
// ...適当な処理...
return true;
}
}
public class モック化したいクラス{
private Map<String, String> 試験対象のマップ;
public Map<String, String> getMap(){
return 試験対象のマップ;
}
}
テストの実行コード
//...
import org.mockito.Mock; // テスト用ライブラリとしてMockitoを使用
//...
public class テスト対象のクラスTest{
/**
* テスト対象のクラス
*/
@Inject
@InjectMocks
テスト対象のクラス service;
// モック用
モック化したいクラス モックインスタンス = mock(モック化したいクラス.class);
@Before
public void setUp() {
// モックを有効にする
MockitoAnnotations.initMocks(this);
}
@Test
public void テスト() {
// 戻り値のテストはOK
assertThat(test, is(service.テスト対象のメソッド()));
// モックを呼び出した時に、
// 試験対象のマップの検証はどうすればよいでしょうか。
// verify()?
// argumentcaptor?
}
}
上記処理の通り、途中でセッションにつめた変数の内容を検証したいのですが、
何かいい方法はないでしょうか。
皆様のお知恵をお借りできれば幸いです。
よろしくお願い致します。