Package org.atinject.tck
Class Tck
java.lang.Object
org.atinject.tck.Tck
Manufactures the compatibility test suite. This TCK relies on
JUnit. To integrate the TCK with your
injector, create a JUnit test suite class that passes an injected
Car instance to testsFor(Car):
import junit.framework.Test;
import org.atinject.tck.Tck;
import org.atinject.tck.auto.Car;
public class MyTck {
public static Test suite() {
Car car = new MyInjector().getInstance(Car.class);
return Tck.testsFor(car,
true /* supportsStatic */,
true /* supportsPrivate */);
}
}
The static suite method that returns a Test is a JUnit
convention. Feel free to run the returned tests in other ways.
Configure the injector as follows:
Caris implemented byConvertible.@DriversSeatis implemented byDriversSeat.Seatis implemented bySeatitself, andTirebyTireitself (not subclasses).Engineis implemented byV8Engine.@Named("spare")Tireis implemented bySpareTire.- The following classes may also be injected directly:
Cupholder,SpareTire, andFuelTank.
Static and private member injection support is optional, but if your
injector supports those features, it must pass the respective tests. If
static member injection is supported, the static members of the following
types shall also be injected once:
Convertible,
Tire, and
SpareTire.
Use your favorite JUnit tool to run the tests. For example, you can use your IDE or JUnit's command line runner:
java -cp javax.inject-tck.jar:junit.jar:myinjector.jar \
junit.textui.TestRunner MyTck-
Method Summary
-
Method Details
-
testsFor
Constructs a JUnit test suite for the givenCarinstance.- Parameters:
car- to testsupportsStatic- true if the injector supports static member injectionsupportsPrivate- true if the injector supports private member injection- Throws:
NullPointerException- if car is nullClassCastException- if car doesn't extendConvertible
-