J'écris une fonction (écouteur de test) appelée SqlCounter.
Son but est de compter les requêtes SQL réelles pendant l'exécution du test.
Si ce nombre est plus grand, la propriété env spéciale - test échoue.Injection de la logique entre @Before et l'exécution de @Test avec Spring et JUnit
Le problème est que: J'ai une certaine logique dans mes méthodes @Before, qui exécutent également beaucoup de requêtes. Ce dont j'ai besoin, c'est d'effacer mon "compteur SQL" après tous les hooks "avant" (juste avant le début de l'exécution de la méthode de test).
Mais tous connus de façons moi (org.springframework.test.context.support.AbstractTestExecutionListener: beforeTestMethod, org.junit.rules.TestWatcher: départ, org.junit.rules.TestRule: appliquer) exécuter AVANT @Before JUnit :(
Aidez-moi, s'il vous plaît;)
Mise à jour:
Je veux effacer ce compteur SQL pas explicitement (dans la @Before tous), mais dans l'un certain auditeur, qui doit être invoqué à droite entre @Before et @ Test des méthodes annotées
pouvez-vous ajouter le code qui efface le compteur SQL dans votre méthode @Before APRÈS l'exécution SQL? –
il est implémenté avec l'aide de ttddyy/datasource-proxy (https://github.com/ttddyy/datasource-proxy) comme dans cet article - https://vladmihalcea.com/2014/02/01/how-to-detect -le-n-plus-un-question-problème-pendant-testing (QueryCountHolder.clear();) – Alex