Мое приложение 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