Skip to content

Instantly share code, notes, and snippets.

@chbaranowski
Created October 24, 2010 09:39
Show Gist options
  • Save chbaranowski/643393 to your computer and use it in GitHub Desktop.
Save chbaranowski/643393 to your computer and use it in GitHub Desktop.
Demo TestDescriptionTest arbeiten mit Annotations
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
import static org.junit.Assert.*;
public class TestDescriptionTest {
@TestDescription("Value Attribut setzen")
public void testDescriptionMethod_Value() {}
@TestDescription(titel = "Test Beispiel", description = "Ein Test als Beispiel")
public void testDescriptionMethod_TitelDescription() {}
@TestDescription(prio = 5)
public void testDescriptionMethod_Prio() {}
@Test
public void testTestDescription_Value() throws Exception {
Method method = getMethodByName("testDescriptionMethod_Value");
TestDescription description = method.getAnnotation(TestDescription.class);
assertEquals("Value Attribut setzen", description.value());
}
@Test
public void testTestDescription_Titel() throws Exception {
Method method = getMethodByName("testDescriptionMethod_TitelDescription");
TestDescription description = method.getAnnotation(TestDescription.class);
assertEquals("Test Beispiel", description.titel());
}
@Test
public void testTestDescription_Description() throws Exception {
Method method = getMethodByName("testDescriptionMethod_TitelDescription");
TestDescription description = method.getAnnotation(TestDescription.class);
assertEquals("Ein Test als Beispiel", description.description());
}
public Method[] findMethodsWithTestDescription(Class<?> testClass) {
Method[] methods = testClass.getMethods();
List<Method> methodsWithTestDescription = new ArrayList<Method>();
for (Method method : methods) {
TestDescription annotation = method
.getAnnotation(TestDescription.class);
if (annotation != null) {
methodsWithTestDescription.add(method);
}
}
return methodsWithTestDescription
.toArray(new Method[methodsWithTestDescription.size()]);
}
@Test
public void testDescriptionAnnotation() throws Exception {
Method[] expectedMethods = new Method[] {
getMethodByName("testDescriptionMethod_Value"),
getMethodByName("testDescriptionMethod_TitelDescription"),
getMethodByName("testDescriptionMethod_Prio")
};
assertArrayEquals(
expectedMethods,
findMethodsWithTestDescription(TestDescriptionTest.class));
}
Method getMethodByName(String name) throws NoSuchMethodException {
return TestDescriptionTest.class
.getMethod(name);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment