Test Data Builder

A data builder for unit tests

License

License

Categories

Categories

Data Net
GroupId

GroupId

net.baens
ArtifactId

ArtifactId

test-data-builder
Last Version

Last Version

1.1.0
Release Date

Release Date

Type

Type

jar
Description

Description

Test Data Builder
A data builder for unit tests
Project URL

Project URL

https://github.com/baens/test-data-builder
Source Code Management

Source Code Management

https://github.com/baens/test-data-builder

Download test-data-builder

How to add to project

<!-- https://jarcasting.com/artifacts/net.baens/test-data-builder/ -->
<dependency>
    <groupId>net.baens</groupId>
    <artifactId>test-data-builder</artifactId>
    <version>1.1.0</version>
</dependency>
// https://jarcasting.com/artifacts/net.baens/test-data-builder/
implementation 'net.baens:test-data-builder:1.1.0'
// https://jarcasting.com/artifacts/net.baens/test-data-builder/
implementation ("net.baens:test-data-builder:1.1.0")
'net.baens:test-data-builder:jar:1.1.0'
<dependency org="net.baens" name="test-data-builder" rev="1.1.0">
  <artifact name="test-data-builder" type="jar" />
</dependency>
@Grapes(
@Grab(group='net.baens', module='test-data-builder', version='1.1.0')
)
libraryDependencies += "net.baens" % "test-data-builder" % "1.1.0"
[net.baens/test-data-builder "1.1.0"]

Dependencies

test (2)

Group / Artifact Type Version
junit : junit jar 4.12
org.assertj : assertj-core jar 3.2.0

Project Modules

There are no modules declared in this project.

Java Test Data Builder

This is a library that helps generate test data for unit tests. The data structures are assumed to be an Immutabled data object. This means that the fields are public final and that each value corresponds to a constructor parameter.

Feature Hightlights

  • Populates all fields of class
  • Can return an Iterable of data objects
  • Can set fields of the class
  • Can rotate a number of different settings in the class

Examples

Assume the following data class:

public class Data {
  public final int field1;
  public final String field2;
  
  public Data(int field1, String field2){
    this.field1 = field1;
    this.field2 = field2;
  }
}

You can build a data object:

  Data data = TestDataBuilder.create(Data.class).build();
  // field1 = 1
  // field2 = "2"

You can return an Iterator of objects:

  Iterable<Data> data = TestDataBuilder.create(Data.class).build(3);
  // [
  //    {field1 = 1, field2 = "2"},
  //    {field1 = 1, field2 = "2"},
  //    {field1 = 1, field2 = "2"}
  //  ]

You can set fields inside the object:

Data data = TestDataBuilder
                          .create(Data.class)
                          .set(TestDataBuilder.fieldOf(Data.class).field1,1234)
                          .build();
//field1 = 1234
//field2 = "2"

Fields values can rotate through the iterator:

Iterable<Data> data = Data data = TestDataBuilder
                          .create(Data.class)
                          .set(TestDataBuilder.fieldOf(Data.class).field1,2,4,6)
                          .build(6);
  // [
  //    {field1 = 2, field2 = "2"},
  //    {field1 = 4, field2 = "2"},
  //    {field1 = 6, field2 = "2"},
  //    {field1 = 2, field2 = "2"},
  //    {field1 = 4, field2 = "2"},
  //    {field1 = 6, field2 = "2"}
  //  ]

Versions

Version
1.1.0
1.0.1
1.0.0