特定の箇所の挙動確認でMockをしたとき、同一メソッドを呼んでいる他の箇所でも同じようにMockされテストが上手くいかないということがあると思います。
実はJUnitで使用するMockitoでは、Mock時の戻り値や例外を複数回書いてあげることによって、複数回目の処理の処理結果を変更することができるんです。
例えば以下のようにテストソースを書いた時、
when(mockClass.mockmethod()).thenReturn("xxx").thenReturn("yyy").thenThrow(new IOException())
動作させた処理で
1回目にmockClass.mockmethod()が呼び出された際は"xxx"を返却し、
2回目にmockClass.mockmethod()が呼び出された際は"yyy"を返却し、
3回目にmockClass.mockmethod()が呼び出された際はIOExceptionの例外を投げるといったような記述が可能です。
これを使うことで特定の箇所をMockしたいときに他の箇所も併せてMockしてしまい上手くテストできない現象を解消できます。
より詳しいやり方は私が参考にしたサイトを見てください。