【问题标题】:Can I make Java actively throw compile errors? (Yes.. compile errors...not exception)我可以让 Java 主动抛出编译错误吗? (是的..编译错误...不是例外)
【发布时间】:2021-10-07 16:39:52
【问题描述】:

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

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

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

【问题讨论】:

  • 你建设得怎么样了?例如,在src/test 包中的典型 Maven/Gradle 设置类中,src/main 包中将无法使用 IIRC。
  • 我明白了。现在我们正在使用 BUCK,但由于 BUCK 文件中有一个名为“maven_coords”的属性,我猜在底部它使用的是 maven

标签: java compiler-errors


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2016-02-09
    • 1970-01-01
    • 1970-01-01
    • 2018-08-30
    • 2021-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多