Я разрабатываю простую библиотеку единичных тестов, просто для удовольствия и опыта. Пока я пишу модульные тесты, я следую шаблону, заданному-когда-то или упорядочиваю-действовать-утверждать. Поэтому я подумал, что вместо того, чтобы написать этот паттерн имена в одной строке комментарии в методе пробного тела:Установить пользовательские аннотации внутри метода?
@TestClass(enabled = false)
public class DemonstrationTest {
@UnitTest
public void StringBuilderSuccess() throws AssertFailureException{
//Given
String firstTitle = "CosmicWhale";
String secondTitle = "AmbientTurtle";
StringBuilder stringBuilder = new StringBuilder();
String expected = firstTitle + " " + secondTitle;
//When
String actual = stringBuilder.append(firstTitle).append(" ").append(secondTitle).toString();
//Then
btester.framework.Assert.assertEquals(expected, actual);
}
}
Я могу создавать аннотации, чтобы следовать этому образцу. Это гораздо более элегантна:
@UnitTest
public void StringBuilderSuccess() throws AssertFailureException{
@Given
String firstTitle = "CosmicWhale";
String secondTitle = "AmbientTurtle";
StringBuilder stringBuilder = new StringBuilder();
String expected = firstTitle + " " + secondTitle;
@When
String actual = stringBuilder.append(firstTitle).append(" ").append(secondTitle).toString();
@Then
String localVariable;
btester.framework.Assert.assertEquals(expected, actual);
}
Моя проблема в том, что каждый из этих аннотаций, должна быть выше некоторой локальной переменной. Это не проблема с @Given и @ При аннотации, но это большая проблема с последней аннотацией @Then. Я создал redundand локальную переменную под аннотацией @Then, чтобы обойти проблему.
Вопрос: Есть ли вероятность разместить аннотацию выше? Закрепить в коде?
Каждое тело аннотацию выглядит Лика это:
@Retention(RetentionPolicy.CLASS)
@Target(ElementType.LOCAL_VARIABLE)
public @interface When {
}
Я использую Java 8. буду благодарен за любую помощь.
Ps. Если вы хотите проверить или внести свой вклад в мой проект, вы можете найти его here.
Благодарим вас за ответ. –