2017-06-27 27 views
0

プロジェクトでは、Guava's VisibleForTestingを使用して、テストにのみ使用する必要のあるヘルパーメソッドに注釈を付けることから始めました。サービスモックが「注入」される)。本番環境では、アプリケーションはSpringのAutowiredを使用してサービスを取得する必要があります。テストコードはテストでのみ呼び出され、テストでは呼び出されません。

注釈付きコードVisibleForTestingがテストコードでのみ呼び出されるかどうかをチェックする方法はありますか? (唯一のテストのためのセッターを持つ、この特定のケースでは)同じ誤謬苦しんでいる人のため

+2

コンストラクタインジェクションのようなものが、このハックを避けるために使用する必要があります。 –

+2

私は同意します。 Guavaには素晴らしい機能がたくさんあります。しかし、何かが生産コードに含まれていないことを確認したいのであれば、それをそこに置かないでください... – GhostCat

+0

私は基本的に同意します、私は再確認しなければなりません、なぜコンストラクタインジェクション – user2039709

答えて

0

  1. 使用コンストラクタ・インジェクションを代わりに
  2. いくつかのあいまいな理由で、製品コードを変更できない場合は
  3. 、 Mockitoの InjectMocks(少なくとも)は、本番コードが

理由クリーンに保つ:あなたは外プロジェクトのビルド環境のために他人を防ぐことはできませんこの「テスト専用」コードを使用してください。静的コード分析に関するあらゆる努力は、(あなたにとっては)安全性の錯覚を作成し、誰かが実際にそのコードを誤解した場合にさらに驚くようにします。

関連する問題