Частично издеваться над bean-компонентом Spring при запуске тестовJAVA

Программисты JAVA общаются здесь
Anonymous
Частично издеваться над bean-компонентом Spring при запуске тестов

Сообщение Anonymous »

Мое приложение Spring Boot v3.2.0 содержит компонент типа LocalContainerEntityManagerFactoryBean. Когда тесты выполняются, я хочу, чтобы метод уничтожить этого компонента (определенный в родительском классе AbstractEntityManagerFactoryBean) ничего не делал. Я попытался добиться этого с помощью

Код: Выделить всё

import static org.mockito.Mockito.doNothing;
// other imports omitted

@SpringBootTest
public class MyIntegrationTests {

@SpyBean
private AbstractEntityManagerFactoryBean entityManagerFactoryBean;

@Test
void myIntegrationTest() {
doNothing().when(entityManagerFactoryBean).destroy();
// remainder of test omitted
}
}
Но когда я запускаю тест, я получаю эту ошибку, которая указывает на то, что шпион не создается дляentityManagerFactoryBean

Код: Выделить всё

org.mockito.exceptions.misusing.NotAMockException:
Argument passed to when() is not a mock!
Даже если бы это решение работало, я бы не был им полностью удовлетворен, потому что нет очевидного способа повторно использовать его в других классах интеграционного тестирования (кроме копирования).
p>
Есть ли другой способ заглушить метод уничтожить этого компонента при запуске тестов?

Подробнее здесь: https://stackoverflow.com/questions/776 ... -tests-run

Вернуться в «JAVA»