我正在对项目上的纯Java文件运行纯JUnit4 Java测试,但是如果不手动将其公开,我将找不到一种清晰使用@VisibleForTesting的方法。
例如:
@VisibleForTesting public Address getAddress() { return mAddress; }
方法必须是public使其对测试“公开”,但是在那种情况下,注释没有意义吗?如果批注什么也不做,为什么不只使用注释呢?
public
标签本身可以帮助短绒棉子识别不需要的访问。
为了降低使用风险直接,添加此方法是internal在 科特林 或protected在 Java的 替代public,并与仅是在同一个包就能访问该方法测试或类。
internal
protected
Java:
@VisibleForTesting protected Address address() { return mAddress; }
科特林:
@VisibleForTesting internal fun address(): Address { return address; }