dataZ provides easy test support for testing of different datastore (currently) using JUnit.


First of all dataZ is fast and easy to use and brings fun back(?) to the testing of databases.

Second dataZ will - eleminate boilerplate code, - makes your tests more expressive, - better organized and - therefore maintainable.

Third dataZ is highly extendable and adaptable.


Within a Database we call it a Datastore.

  • Supports any kind of datastore ... currently any SQL databases and Neo4J.
  • Supports one or many datastores
    • ... homegenious: two or more databases of the same type (any SQL database or Neo4J)
    • ... heterogenious (two or more databases of different types (any SQL database and Neo4J)
    • It's also possible to use different SQL databases. This is also somehow hetergenious.

Test fixtures (or datasets)

  • Multiple datasets
  • Mixture of fixed and shared test fixtures
  • Reuse of predefined datasets (by using @Use)
  • Organization of your test fixtures
  • Test fixture as template scripts


  • Well known Apache Velocity as template engine.
  • Injecting data and functionality from specific test (method or class). Example: Known account names.
  • Bunch of predefined template objects like generators or encoders. In the future there will be more.
  • Adhoc template objects for fast custom template objects.
  • Ease of generating a lot of data.


Almost everything is extendable. You can write your own

  • Template object like
    • generators,
    • encoders or
    • any other functionality dataZ is typical to your project and won’t be useful for any other.
  • or even write your own bunch for your project(s).

  • Have a datastore which is not yet supported. Write your own.

  • Or you wan't to use your own format, because the customer is providing test data. Just do it.

  • Don't like velocity as template engine. Write your own.

Where to start?