Mapping persistent classes - Testing Java Persistence Applications - Working with test execution listeners

3 belangrijke vragen over Mapping persistent classes - Testing Java Persistence Applications - Working with test execution listeners

Waarom met Test execution listeners werken en niet met Junits annotaties @BeforeAll,@AfterAll, @BeforeEach, @AfterEach?

Als we dezelfde `@BeforeEach` en `@AfterEach` gedrag voor meerdere tests nodig hebben, zouden we een basisklasse moeten maken met deze methoden en meerdere subklassen moeten maken die deze methoden erven en uitvoeren bij het uitvoeren van de tests. Dit heeft het nadeel dat onze tests in een hiërarchie van klassen terechtkomen. Als alternatief kunnen we overwegen om te werken met testuitvoeringslisteners, met de `TestExecutionListener` interface, en met de `@TestExecutionListeners` annotatie, waardoor we het gedrag dat de levenscyclus van de test regelt, kunnen scheiden.

Welke zijn de lege standaard methoden van de TestExecutionListener interface ?

- `beforeTestClassExecuted`: voor de `@BeforeAll`-methode van JUnit 5
- `prepareTestInstancePrepares`: bereidt de testinstantie van de meegeleverde testcontext voor
- `beforeTestMethodExecuted`: voor de `@BeforeEach`-methode van JUnit 5
- `beforeTestExecutionExecuted`: voor de testmethode
- `afterTestExecutionExecuted`: na de testmethode
- `afterTestMethodExecuted`: na de `@AfterEach`-methode van JUnit 5
- `afterTestClassExecuted`: na de `@AfterAll`-methode van JUnit 5

Als we onze zelfgemaakte luisteraar inschakelen via de @TestExecutionListeners annotatie schakelen we de standaard luisteraars uit, hoe verhelpen we dit


Met de mergemode MERGE_WITH_DEFAULTS zoals in
@TestExecutionListeners(value = {
DatabaseOperationsListener.class}, mergeMode =
TestExecutionListeners.MergeMode.MERGE_WITH_DEFAULTS)

De vragen op deze pagina komen uit de samenvatting van het volgende studiemateriaal:

  • Een unieke studie- en oefentool
  • Nooit meer iets twee keer studeren
  • Haal de cijfers waar je op hoopt
  • 100% zeker alles onthouden
Onthoud sneller, leer beter. Wetenschappelijk bewezen.
Trustpilot-logo