package de.bechte.junit.runners.context.processing;
import org.junit.runner.notification.RunNotifier;
import org.junit.runners.model.TestClass;
/**
* A {@link ChildExecutor} is responsible for executing all tests for the given object. Typically, the
* {@link ChildExecutor} is used together with the {@link ChildResolver}.
*
* @param <T> The type of object that tests get executed by the {@link ChildExecutor}.
*/
public interface ChildExecutor<T extends Object> {
/**
* Runs the given object of type T and informs the {@link RunNotifier} about all notifications.
*
* @param testClass the corresponding {@link TestClass}
* @param object the object of type T
* @param notifier the {@link RunNotifier} to be notified
*/
public abstract void run(final TestClass testClass, final T object, final RunNotifier notifier);
}