私は純粋なJUnit4を実行していますJava自分のプロジェクトのJava Javaファイルをテストしていますが、使用する方法が見つかりません @ VisibleForTesting 手動で公開することなく、明らかに。
例:
@VisibleForTesting
public Address getAddress() {
return mAddress;
}
メソッドをpublic
にして、テストに対して「公開」する必要がありますが、その場合、注釈は正しくありませんか?注釈が何もしない場合は、なぜコメントを使用しないのですか?
Android docsによると:
オプションで、テスト用でない場合の可視性を指定できます。これにより、ツールは本番コード内から意図しないアクセスをキャッチできます。
例:
@VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)public Address getAddress()
メソッドをpackage-privateにすると、テストが対応するテストパッケージ(製品コードと同じパッケージ名)にある場合、テストはそれを見ることができます。
@VisibleForTesting
Address getAddress() {
return mAddress;
}
また、プライベートメソッドを明示的にテストする必要がないようにコードをリファクタリングすることも検討してください。パブリックインターフェイスの動作をテストしてみてください。テストが難しいコードは、製品コードを改善できることを示している可能性があります。
注釈の要点は、その規約であり、静的コード分析で使用できるのに対し、コメントは使用できないということです。
@VisibleForTestingアノテーションはGuavaのパッケージメソッドで使用され、JUnit APIの一部ではありません。アノテーションは、メソッドをテストできることを示す単なるタグです。 JVMにもロードされません。