首页 > 解决方案 > 我可以让 Java 主动抛出编译错误吗?(是的..编译错误...不是例外)

问题描述

我创建了一个类,我只希望人们在单元测试中使用它。

@VisibleForTesting 并不理想,因为它使类仅在其自己的包中对测试可见。在我的例子中,我创建的这个类是一个 util 类,应该用于来自不同包的所有单元测试。我们不想在生产代码中使用它的原因是由于一些复杂和遗留的原因......我们想要强制执行它。一言以蔽之,强制一个类只能在不同包的单元测试中使用,但不能在外部单元测试代码中使用

所以我想知道最好的解决方案是什么?我认为如果在非测试类中使用这个类,让 Java 抛出编译错误是个好主意......但我不知道该怎么做,或者它是否完全受 Java 支持

标签: javacompiler-errors

解决方案


对于 maven,在 src/test/java 源文件夹中定义类。这仅对测试代码可见。

对于其他构建系统,将您的测试和支持类放在一个单独的项目中。您不想发布测试课程。


推荐阅读