gpt4 book ai didi

java - 互斥注解

转载 作者:IT老高 更新时间:2023-10-28 21:02:53 25 4
gpt4 key购买 nike

是否可以将两个注解标记为互斥?

我有一个自定义的 JUnit 运行器,我想确保如果一个测试用我的注释 @Custom 标记,用 @Test 标记它会抛出 (最好)编译错误或(次要)运行时错误。

我想要这个的原因是 @Custom 基本上是 @Test 但在运行测试之前有一些额外的预处理。而且,按照我的编码方式,对于每个自定义标签(是的,不止一个),测试将运行多次,每次都进行相应的预处理。因此,让它也为 @Test 运行是没有意义的,因为该测试意味着要进行一些预处理。

而且,是的,我想在我的框架中同时支持 @Custom@Test (尽管不是针对相同的测试方法)。

最佳答案

实际上没有任何方法可以限制您可以在 Java 元素上放置哪些注释。因此,例如,您可以将一个字段同时标记为 @Required@Optional,即使这完全没有意义。

您必须在运行时通过查看存在哪些注释或通过查找您感兴趣的特定注释来进行检查,然后抛出异常(这将被单元测试捕获)。

对于您的具体问题,可能会有更好的解决方案。如果你想特别对待某些测试用例,你可能想实现你自己的测试运行器并使用 @RunWith注释来调用它。然后,您可以确保您的 @Custom 方法获得先决条件操作。

关于java - 互斥注解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9365856/

25 4 0