DataPoints (JUnit API)
Date: 2018-08-04

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

    Optional Elements
    Modifier and Type | Optional Element and Description
    --- | ---
    `java.lang.Class<? extends java.lang.Throwable>[]` | `ignoredExceptions`
    `java.lang.String[]` | `value`

- - ### Element Detail

    - #### value

          public abstract java.lang.String[] value

      Default:
        {}

    - #### ignoredExceptions

          public abstract java.lang.Class<? extends java.lang.Throwable>[] ignoredExceptions

      Default:
        {}