1. ホーム
  2. ジャワ

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

2022-03-03 16:49:48

質問

私のプロジェクトでは、純粋な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;
}