Использование java-аннотаций в шаблонном движке rythm
В стремлении сделать тесты JUnit частью того, как мы используем Ryhtm, мы пришли к фрагменту кода ниже. Все прошло хорошо, пока мы не добавили
@Test
который, очевидно, является аннотацией Java и использует маркер @ в качестве элемента синтаксиса, который также используется Rythm. Как достичь желаемого эффекта, чтобы получить @annotation? Просто избежать @@ не работает, это дает
Syntax error on token "@", delete this token
ошибка. Итак, как можно использовать аннотацию Java @?
Я также подал это как сообщение об ошибке на https://github.com/greenlaw110/Rythm/issues/285
@// This is a rythm template
@import static org.junit.Assert.*
@import org.junit.Test.*
@def static {
class TestMe {
String name;
@Test
public void testMe() {
name="test";
assertEquals("test",name);
}
}
}
@{
TestMe testme=new TestMe();
testme.name="testme";
}
The TestMe has the name @(testme.name)
2 ответа
Решение
Если вы используете полностью соответствующую аннотацию, она должна работать:
@org.junit.Test
@import org.junit.Test.*
в вашем шаблоне код должен быть @import org.junit.Test
, Обратите внимание, что .*
нужно снять