Created
October 24, 2010 09:39
-
-
Save chbaranowski/643393 to your computer and use it in GitHub Desktop.
Demo TestDescriptionTest arbeiten mit Annotations
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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