public class Tck
extends java.lang.Object
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:
Car is implemented by
Convertible.
@Drivers
Seat is
implemented by DriversSeat.
Seat is
implemented by Seat itself, and
Tire by
Tire itself
(not subclasses).
Engine is implemented by
V8Engine.
@Named("spare")
Tire is implemented by
SpareTire.
Cupholder,
SpareTire, and
FuelTank.
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 MyTckpublic static junit.framework.Test testsFor(Car car, boolean supportsStatic, boolean supportsPrivate)
Car instance.car - to testsupportsStatic - true if the injector supports static member
injectionsupportsPrivate - true if the injector supports private member
injectionjava.lang.NullPointerException - if car is nulljava.lang.ClassCastException - if car doesn't extend
Convertible