QueryCaptureTestExecutionListener.java
package li.selman.persistencetest.springboot;
import li.selman.persistencetest.capture.QueryCaptureContext;
import org.springframework.test.context.TestContext;
import org.springframework.test.context.TestExecutionListener;
/**
* Resets {@link QueryCaptureContext#current()} before each test method.
*
* <p>Registered via {@code META-INF/spring.factories}, which the Spring TestContext Framework picks up as
* a <em>default</em> listener for every test using it (e.g. anything with
* {@code @ExtendWith(SpringExtension.class)} or {@code @SpringBootTest}) - no {@code @TestExecutionListeners}
* declaration needed on the test class itself, unless that class already uses
* {@code mergeMode = MergeMode.REPLACE_DEFAULTS}.
*/
public final class QueryCaptureTestExecutionListener implements TestExecutionListener {
@Override
public void beforeTestMethod(TestContext testContext) {
QueryCaptureContext.current().reset();
}
}