1. ホーム
  2. java

[解決済み】純粋なJUnitテストにVisibleForTestingを使用する方法

2022-01-28 04:15:20

質問

プロジェクトで純粋なJavaファイルに対して純粋なJUnit4のJavaテストを実行していますが テスト用可視化 を手動で公開することなく、明確にすることができます。

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

このメソッドは public しかし、その場合、アノテーションは意味をなさないのでしょうか?

どのように解決するのですか?

タグ自体は、リンターが不要なアクセスを識別するのに役立ちます。

直接使用するリスクを下げるために、以下のメソッドを追加してください。 internal コトリン または protected ジャワ の代わりに public で、同じパッケージに含まれるテストやクラスだけがそのメソッドにアクセスできるようになります。

Javaです。

@VisibleForTesting
protected Address address() {
  return mAddress;
}

Kotlinです。

@VisibleForTesting
internal fun address(): Address {
  return address;
}