Используйте значения перечисления в качестве тега в JUnit 5 - PullRequest
0 голосов
/ 24 января 2019

Мне нравится новая функция @Tag в JUnit 5 как , показанная в руководстве .

У меня есть одна проблема. Значения тега являются простыми строками. Это означает, что опечатки могут произойти.

➥ Есть ли какой-нибудь способ получить поведение тега, но используя значения из перечисленных мной перечислений?

Или каким-то другим способом я могу зависеть от компилятора для обеспечения правильности значений?

1 Ответ

0 голосов
/ 24 января 2019

Мета-аннотации

Использование Java-аннотации вместо Java перечисления .

Вы можете определить собственную аннотацию для переноса JUnit @Tagаннотаций.Таким образом, вам нужно написать строку значения вашего тега только один раз, а затем применить эту пользовательскую аннотацию ко всем наборам тестов.

Мета-аннотации проверяются компилятором для обеспечения правильных значений, как вы просили в своем Вопросе.

См. Руководство по мета-аннотациям .И посмотрите этот слайд в видео на YouTube о выступлении Марка Филиппа .

Пример

Объявите свой собственный тип аннотации .

@Target({ ElementType.TYPE , ElementType.METHOD })
@Retention( RetentionPolicy.RUNTIME )
@Tag( "fast" )
@Test
public @interface FastTest {}

Позже, когда вы будете писать свои тесты, аннотируйте свою новую аннотацию @FastTest,

Вместо того чтобы писать это:

@Tag( "fast" ) 
@Test
void someTest() { … }

… пишите это:

@FastTest
void someTest() { … }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...