org.junit.experimental.theories
Annotation Type DataPoints


@Retention(value=RUNTIME)
@Target(value={FIELD,METHOD})
public @interface DataPoints

Annotating an array or iterable-typed field or method with @DataPoints will cause the values in the array or iterable given to be used as potential parameters for theories in that class when run with the Theories runner.

DataPoints will only be considered as potential values for parameters for which their types are assignable. When multiple sets of DataPoints exist with overlapping types more control can be obtained by naming the DataPoints using the value of this annotation, e.g. with @DataPoints({"dataset1", "dataset2"}), and then specifying which named set to consider as potential values for each parameter using the @FromDataPoints annotation.

Parameters with no specified source (i.e. without @FromDataPoints or other @ParameterSuppliedBy annotations) will use all DataPoints that are assignable to the parameter type as potential values, including named sets of DataPoints.

DataPoints methods whose array types aren't assignable from the target parameter type (and so can't possibly return relevant values) will not be called when generating values for that parameter. Iterable-typed datapoints methods must always be called though, as this information is not available here after generic type erasure, so expensive methods returning iterable datapoints are a bad idea.

 @DataPoints
 public static String[] dataPoints = new String[] { ... };
 
 @DataPoints
 public static String[] generatedDataPoints() {
     return new String[] { ... };
 }
 
 @Theory
 public void theoryMethod(String param) {
     ...
 }
 

See Also:
Theories, Theory, DataPoint, FromDataPoints

Optional Element Summary
 Class<? extends Throwable>[] ignoredExceptions
           
 String[] value
           
 

value

public abstract String[] value
Default:
{}

ignoredExceptions

public abstract Class<? extends Throwable>[] ignoredExceptions
Default:
{}


Copyright © 2002–2021 JUnit. All rights reserved.