org.junit.experimental.runners.Enclosed Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of junit Show documentation
Show all versions of junit Show documentation
JUnit is a unit testing framework for Java, created by Erich Gamma and Kent Beck.
package org.junit.experimental.runners;
import java.lang.reflect.Modifier;
import java.util.ArrayList;
import java.util.List;
import org.junit.runners.Suite;
import org.junit.runners.model.RunnerBuilder;
/**
* If you put tests in inner classes, Ant, for example, won't find them. By running the outer class
* with Enclosed, the tests in the inner classes will be run. You might put tests in inner classes
* to group them for convenience or to share constants. Abstract inner classes are ignored.
*
* So, for example:
*
* @RunWith(Enclosed.class)
* public class ListTests {
* ...useful shared stuff...
* public static class OneKindOfListTest {...}
* public static class AnotherKind {...}
* abstract public static class Ignored {...}
* }
*
*/
public class Enclosed extends Suite {
/**
* Only called reflectively. Do not use programmatically.
*/
public Enclosed(Class klass, RunnerBuilder builder) throws Throwable {
super(builder, klass, filterAbstractClasses(klass.getClasses()));
}
private static Class[] filterAbstractClasses(final Class[] classes) {
final List> filteredList= new ArrayList>(classes.length);
for (final Class clazz : classes) {
if (!Modifier.isAbstract(clazz.getModifiers())) {
filteredList.add(clazz);
}
}
return filteredList.toArray(new Class[filteredList.size()]);
}
}