JUnit 5 extension
The BonitaTests extension is the entry point to create Bonita integration tests. It allows to specify some behaviors, and to inject the BonitaTestToolkit
into the test methods.
Integrations tests are built upon the Bonita Test Toolkit, based on the open-source Bonita Java Client. |
Create the Bonita test extension
The Bonita test extension is a JUnit 5 extension, it can be registered using the annotation @BonitaTests
.
The extension can be registered through the annotation BonitaTests
or manually.
Inject BonitaTestToolkit
Once the extension registered, you can inject a BonitaTestToolkit
instance as a test method parameter.
@BonitaTests
class ProcessIT {
@BeforeAll
static void beforeAllTests(BonitaTestToolkit toolkit){
toolkit.deleteBDMContent();
}
@BeforeEach
void beforeEachTests(BonitaTestToolkit toolkit){
toolkit.deleteProcessInstances();
}
@Test
void testMyProcess(BonitaTestToolkit toolkit){
var myProcess = toolkit.getProcessDefinition("MyProcess");
...
}
}
Configure a logger
The Bonita test toolkit rely on SLF4J logger API. You may plug the SLF4J implementation of your choice in your project.
Logback example
logback-classic
dependency in your pom.xml<dependencies>
...
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.10</version>
<scope>test</scope>
</dependency>
</dependencies>
logback.xml
file in the src/test/resources folder<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- encoders are assigned the type
ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<root level="warn">
<appender-ref ref="STDOUT" />
</root>
<logger name="org.bonitasoft.web.client" level="warn" />
<logger name="com.bonitasoft.test.toolkit" level="info" />
<!-- Replace with the package containing your tests-->
<logger name="com.company.project.test" level="info" />
</configuration>