Testing

This section explains how to set up and run integration tests for bookmarks, provides samples for custom integration tests and outline of unit tests.

There are a number of (unit and integration) tests across the project in each of the modules.

Integration Tests

By default, the integration tests will not get executed when you build the project. The reason for this is because it will increase the build time significantly.

There is a separate maven profile called IT that you can run with the following command when you want to execute the integration tests:

  mvn install -P IT.

Bookmark Tests

Atoti FRTB uses a test harness library which has been developed to regression test Atoti Server projects. This library enables us to start up a cube, execute MDX queries and assert the values match.

By default, the Atoti Server instance will load data from /src/test/resources/data.

Creating Bookmark (MDX) Tests

  1. Start up your Atoti Server instance.
  2. Run the class com.activeviam.back.test.bookmark.creator.BookmarkTestCreatorRunner - This will create a set of files in the folder with MDX queries in /src/test/resources/test-bookmarks. All of the MDX queries will be stored in files ending with .query.
  3. Stop your Atoti Server instance.

Creating/Replacing Expected Results

Run the class com.activeviam.back.test.ReferenceRegressionTestIT as a Java application - This will startup an Atoti Server instance, execute the queries in /src/test/resources/test-bookmarks and store the results in files ending with .csv.

Executing Bookmark (MDX) Tests

Run the class com.activeviam.back.test.ReferenceRegressionTestIT as a JUnit test - This will startup an Atoti Server instance, execute the queries in the files ending with .query and assert the results against the corresponding file ending with .csv.

Custom Integration Tests

Integration tests can be defined fully in code, this includes things such as sample data being injected into the Atoti Server instance, the query being executed together with the expected values.

There are a number of sample integration tests in the reference implementation that have been defined as examples. An abstract class is available as a starting point for integration tests being defined manually. See the class com.activeviam.frtb.it.AIntegrationTestIT.

Example implementations of this class can be found in the reference implementation.

Unit Tests

By default, unit tests are executed when you run mvn install. Some example tests can be found in the reference implementation where datastores have been created and mocked in order to test certain functionalities.