У меня есть тест junit, где я хотел бы использовать аннотацию для методов определения параметров теста.Получить значение аннотации пользовательского метода из теста junit
У меня есть класс супер класса, где я абстрагировал некоторую обработку и где я хотел бы прочитать значения аннотации метода.
Я видел примеры аннотаций метода чтения, перейдя по классу. Я не уверен, что это сработает для того, что мне нужно. Как узнать, какой метод был вызван, и затем прочитать те конкретные значения аннотации (TrialMethod.name)?
public class MyUTest extends Processor{
@Test
@TrialMethod(name = "methodToBeTested")
public void testMethod() throws Exception {
//assert stuff
}
}
public class Processor extends TestCase{
private TrialMethodModel trialMethodModel = new TrialMethodModel();
private void setMethodNameByAnnotation() {
Class<?> clazz = this.getClass();
Class<TrialMethod> trialMethodClass = TrialMethod.class;
for (Method method : clazz.getDeclaredMethods()){
if (method.isAnnotationPresent(trialMethodClass)){
trialMethodModel.setName(method.getAnnotation(trialMethodClass).name());
}
}
}
}
@Documented
@Target(ElementType.METHOD)
@Retention(value=RetentionPolicy.RUNTIME)
public @interface TrialMethod {
String name();
}
TestWatcher кажется многообещающим. Я пытаюсь интегрировать это. http://blog.jiffle.net/post/41125006846/extending-junit-functionality-with-additional – Jim