Package org.instancio.junit
Class InstancioExtension
java.lang.Object
org.instancio.junit.InstancioExtension
- All Implemented Interfaces:
org.junit.jupiter.api.extension.AfterEachCallback,org.junit.jupiter.api.extension.AfterTestExecutionCallback,org.junit.jupiter.api.extension.BeforeEachCallback,org.junit.jupiter.api.extension.Extension
public class InstancioExtension
extends Object
implements org.junit.jupiter.api.extension.BeforeEachCallback, org.junit.jupiter.api.extension.AfterEachCallback, org.junit.jupiter.api.extension.AfterTestExecutionCallback
The Instancio JUnit extension adds support for additional
features when using Instancio with JUnit Jupiter:
- reporting the seed value to allow reproducing failed tests
- injecting
Settingsusing@WithSettingsannotation - generating parameterized test arguments using
@InstancioSource
Reproducing failed tests
The extension generates a seed for each test method. When a test fails,
the extension reports this seed in the output. Using the Seed
annotation, the test can be re-run with the reported seed to reproduce
the data that caused the failure.
For example, given the following test class:
@ExtendWith(InstancioExtension.class)
class ExampleTest {
@Test
void verifyPerson() {
Person person = Instancio.create(Person.class);
// some test code...
// ... some assertion fails
}
}
The failed test will report the seed value that was used, for example:
"Test method 'verifyPerson' failed with seed: 12345"
Subsequently, the failing test can be reproduced by annotating the test method
with the Seed annotation:
@Test
@Seed(12345) // will reproduce previously generated data
void verifyPerson() {
Person person = Instancio.create(Person.class);
// snip...
}
See the user guide for more details.
- Since:
- 1.1.0
-
Constructor Summary
ConstructorsConstructorDescriptionDefault constructor; required for JUnit extensions.InstancioExtension(org.instancio.support.ThreadLocalRandom threadLocalRandom, org.instancio.support.ThreadLocalSettings threadLocalSettings) -
Method Summary
Modifier and TypeMethodDescriptionvoidafterEach(org.junit.jupiter.api.extension.ExtensionContext context) voidafterTestExecution(org.junit.jupiter.api.extension.ExtensionContext context) voidbeforeEach(org.junit.jupiter.api.extension.ExtensionContext context)
-
Constructor Details
-
InstancioExtension
public InstancioExtension()Default constructor; required for JUnit extensions. -
InstancioExtension
InstancioExtension(org.instancio.support.ThreadLocalRandom threadLocalRandom, org.instancio.support.ThreadLocalSettings threadLocalSettings)
-
-
Method Details
-
beforeEach
public void beforeEach(org.junit.jupiter.api.extension.ExtensionContext context) - Specified by:
beforeEachin interfaceorg.junit.jupiter.api.extension.BeforeEachCallback
-
afterEach
public void afterEach(org.junit.jupiter.api.extension.ExtensionContext context) - Specified by:
afterEachin interfaceorg.junit.jupiter.api.extension.AfterEachCallback
-
afterTestExecution
public void afterTestExecution(org.junit.jupiter.api.extension.ExtensionContext context) - Specified by:
afterTestExecutionin interfaceorg.junit.jupiter.api.extension.AfterTestExecutionCallback
-