2015-10-21 15 views
6

純粋なJUnit4 Javaテストを自分のプロジェクトで実行していますが、@VisibleForTestingを手作業で公開せずに明確に使用する方法が見つかりません。純粋なJUnitテストにVisibleForTestingを使用する方法

例:

@VisibleForTesting 
public Address getAddress() { 
    return mAddress; 
} 

方法は、それがテストに「公共」もできるようにpublicなければならないが、その場合には注釈が意味が正しいことはありませんか?なぜアノテーションが何もしないのであれば、単にコメントを使用しないでください。

答えて

18

メソッドをpackage-privateにします。テストが対応するテストパッケージ(プロダクションコードと同じパッケージ名)にある場合、テストはそれを見ることができます。あなたが明示的にプライベートメソッドをテストする必要はありませんので、

@VisibleForTesting 
Address getAddress() { 
    return mAddress; 
} 

はまた、パブリックインターフェイスの動作をテストしてみてください、あなたのコードをリファクタリングすることを検討してください。テストするのが難しいコードは、生産コードを改善できることを示すものです。

アノテーションのポイントはその規約であり、静的コード分析で使用できますが、コメントはできません。

関連する問題