StateProcessorとStateというクラスがいくつかあります。メソッドStateProcessor.process(State)のテストを書きたいと思います。このメソッドのロジックは非常に単純ですが、多くのログ メッセージが含まれています。
logger.info(state.getSourse().toString());
if (state.getTarget() == Target.A) {
logger.info(state.getCreationTime());
service.doSmth(state);
} else {
logger.info(state.getTagret().getName());
service.doOtherStff(state);
}
実際のStateインスタンスをprocessメソッドに渡したくありません。このクラスは非常に複雑であり、ビルドに多くのコード行が必要だからです。そこで、Mockito で作成したモック オブジェクトを渡したいと思います。メイン ロジックによると、getTarget() メソッドのみをモックする必要があります。しかし、実行はstate.getTagret().getName()と state.getSourse().toString()で NPE で失敗します。しかし、私はこれらすべてのメソッドを嘲笑するという考えは好きではありません! ロギングのみに使用されました。また、ログメッセージを追加するたびにテストを修正したくありません。
ロギングはそこで非常に便利なので、まったく削除したくありません。しかし、ロギングのためだけにメソッドをモックするのは奇妙に見えます。
この問題を解決するにはどうすればよいですか?