Я пишу какую-нибудь функцию (тестовый слушатель) под названием SqlCounter.
Цель - подсчет запросов реального SQL во время выполнения теста.
Если этот счет больше, то специальное свойство env - тест терпит неудачу.Инъекционная логика между @Before и @Test исполнение с Spring и JUnit
Проблема в том, что у меня есть некоторая логика в моих методах @Before, в которых также выполняется много запросов. Что мне нужно - это очистить свой «счетчик SQL» фактически после ВСЕХ «до» крючков (непосредственно перед началом выполнения тестового метода).
Но все известные мне способы (org.springframework.test.context.support.AbstractTestExecutionListener: beforeTestMethod, org.junit.rules.TestWatcher: начиная, org.junit.rules.TestRule: применить) выполнить ДО @Before JUnit в :(
Помогите мне, пожалуйста;)
Update:
Я хочу, чтобы очистить этот SQL счетчик НЕ явно (в каждом @Before), но в какой-то слушатель, который должен вызываться непосредственно между @Before и @ Испытанные аннотированные методы
вы можете добавить код, который очищает счетчик SQL в вашем методе @Before ПОСЛЕ установки SQL? –
он реализован с помощью ttddyy/datasource-proxy (https://github.com/ttddyy/datasource-proxy), как в этой статье - https://vladmihalcea.com/2014/02/01/how-to-detect -the-n-plus-one-query-problem-upon-testing (QueryCountHolder.clear();) – Alex