| package junitparams; |
| |
| import java.lang.annotation.Retention; |
| import java.lang.annotation.RetentionPolicy; |
| |
| /** |
| * THE annotation for the test parameters. Use it to say that a method takes |
| * some parameters and define how to obtain them. |
| * |
| * @author Pawel Lipinski |
| */ |
| @Retention(RetentionPolicy.RUNTIME) |
| public @interface Parameters { |
| /** |
| * Parameter values defined as a String array. Each element in the array is |
| * a full parameter set, comma-separated or pipe-separated ('|'). |
| * The values must match the method parameters in order and type. |
| * Whitespace characters are trimmed (use source class or method if You need to provide such parameters) |
| * |
| * Example: <code>@Parameters({ |
| * "1, joe, 26.4, true", |
| * "2, angie, 37.2, false"})</code> |
| */ |
| String[] value() default {}; |
| |
| /** |
| * Parameter values defined externally. The specified class must have at |
| * least one public static method starting with <code>provide</code> |
| * returning <code>Object[]</code>. All such methods are used, so you can |
| * group your examples. The resulting array should contain parameter sets in |
| * its elements. Each parameter set must be another Object[] array, which |
| * contains parameter values in its elements. |
| * Example: <code>@Parameters(source = PeopleProvider.class)</code> |
| */ |
| Class<?> source() default Void.class; |
| |
| /** |
| * Parameter values returned by a method within the test class. This way you |
| * don't need additional classes and the test code may be a bit cleaner. The |
| * format of the data returned by the method is the same as for the source |
| * annotation class. |
| * Example: <code>@Parameters(method = "examplaryPeople")</code> |
| * |
| * You can use multiple methods to provide parameters - use comma to do it: |
| * Example: <code>@Parameters(method = "womenParams, menParams")</code> |
| */ |
| String method() default ""; |
| } |