Parameterised tests that don't suck
Clone or download
woprzech Merge pull request #159 from kompacher/fix-ci-build
Fix ci build due to discontinued support for TLSv1.1 and below
Latest commit b8647f1 Sep 21, 2018


Build Status Coverage Status Maven Central

Parameterised tests that don't suck


public class PersonTest {

  @Parameters({"17, false", 
               "22, true" })
  public void personIsAdult(int age, boolean valid) throws Exception {
    assertThat(new Person(age).isAdult(), is(valid));

See more examples

Latest News

  • 2017-11-03 JUnitParams 1.1.1 released. Check release info.

more news here


JUnitParams project adds a new runner to JUnit and provides much easier and readable parametrised tests for JUnit >= 4.12.

Main differences to standard JUnit Parametrised runner:

  • more explicit - params are in test method params, not class fields
  • less code - you don't need a constructor to set up parameters
  • you can mix parametrised with non-parametrised methods in one class
  • params can be passed as a CSV string or from a parameters provider class
  • parameters provider class can have as many parameters providing methods as you want, so that you can group different cases
  • you can have a test method that provides parameters (no external classes or statics anymore)
  • you can see actual parameter values in your IDE (in JUnit's Parametrised it's only consecutive numbers of parameters):


JUnitParams is available as Maven artifact:


To use JUnitParams in a Gradle build add this to your dependencies:

testCompile 'pl.pragmatists:JUnitParams:1.1.1'

If you want to see just one simple test class with all main ways to use JUnitParams see here:

You can also have a look at Wiki:Quickstart

Integration with Spring framework

Since spring version 4.2 it is possible to integrate JUnitParams and spring. More about this here.