我有一个担心。标签值只是字符串。这意味着可能会出现拼写错误。
➥ 有没有办法获取标签行为,但使用我定义的枚举中的值?
或者我可以依靠编译器来强制执行有效值的其他方式?
您可以定义自己的注释来包装 JUnit@Tag
注释。因此,您只需编写一次标记值的字符串,然后在整个测试套件中应用该自定义注释。
正如您在问题中要求的那样,编译器会检查元注释以确保有效值。
请参阅元注释手册。并在Marc Philipp演讲的 YouTube 视频中查看这张幻灯片。
声明你自己的注解类型。
@Target({ ElementType.TYPE , ElementType.METHOD })
@Retention( RetentionPolicy.RUNTIME )
@Tag( "fast" )
@Test
public @interface FastTest {}
稍后,当您编写测试时,请使用新注释进行@FastTest
注释。
而不是这样写:
@Tag( "fast" )
@Test
void someTest() { … }
……写这个:
@FastTest
void someTest() { … }