1. JUnit Parameterized Test
The JUnit framework comes with a runner for parameterized tests. The parameters are defined by a static function which is marked with the annotation @Parameters. The JUnit Runner is called Parameterized.Example:
Output - Eclipse JUnit View:
Advantages
No extra framework or library for parameterized tests is needed. The JUnit view in eclipse and also in other IDEs works fine. One test with one defined parameter set can be invoked via the JUnit view in eclipse.
Disadvantages
The output from the tests is not clear. The output shows only the index number of the used test parameter. Only one test data model and parameter set per test class.
2. More JUnit Parameterized Test in a Test Class
It is possible to have more then one parameterized JUnit test in one test class by using the experimental runner "Enclosed".Example:
Output - Eclipse JUnit View:
Advantages
Grouping logic tests together in one class. Each test can be run from the JUnit view, a single test can be executed for debugging.
Disadvantages
Lots of boilerplate code of the embedded classes.
3. TwiP
TwiP is JUnit extension for parameterized tests. The library brings a JUnit runner, which is named "TwiP".Example:
Output - Eclipse JUnit View:
Advantages
More then one parameterized test in a class is possible. Mixing parameterized and not parameterized tests is possible in one test class. Clear test output toString() method is used for the test parameters.
Disadvantages
A single test could not be chosen from the JUnit output (Eclipse JUnit view) and could not be invoked. This makes debugging the tests difficult because always all test combination must be executed to debug one failing test with one special combination.
4. JUnit Params
JUnit Params is another JUnit extension for parameterized tests like TwiP. The essential difference between TwiP and JUnit Params are the syntax how to define the parameterized tests.Example:
Output - Eclipse JUnit View:
Advantages
Same advantages as TwiP and a little bit clearer test output then TwiP.
Disadvantages
Same disadvantages as TwiP a single test could not be invoked.