一尘不染

如何将VisibleForTesting用于纯JUnit测试

java

我正在对项目上的纯Java文件运行纯JUnit4
Java测试,但是如果不手动将其公开,我将找不到一种清晰使用@VisibleForTesting的方法。

例如:

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

方法必须是public使其对测试“公开”,但是在那种情况下,注释没有意义吗?如果批注什么也不做,为什么不只使用注释呢?


阅读 2459

收藏
2020-12-03

共1个答案

一尘不染

标签本身可以帮助短绒棉子识别不需要的访问。

为了降低使用风险直接,添加此方法是internal科特林protectedJava的
替代public,并与仅是在同一个包就能访问该方法测试或类。

Java:

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

科特林:

@VisibleForTesting
internal fun address(): Address {
  return address;
}
2020-12-03