Я пытаюсь запустить некоторые модульные тесты на некоторых объектах данных, которые я использую в пружине.@ExtendWith(SpringExtension.class)
@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE)
@TestPropertySource(
locations = "classpath:application.properties")
@JdbcTest
public class TestInventory {
@Autowired
DataSource dataSource;
@Test
public void testFinishedGoods() throws SQLException {
....
}
}
< /code>
Я получаю ошибку, потому что в одном из моих объектов данных я получаю доступ к кэшу, как это: < /p>
var ctx = ApplicationContextProvider.getApplicationContext();
CacheRepository cacheRepository = ctx.getBean(CacheRepository.class);
Currency currencyObj = cacheRepository.getCurrencyList().stream().filter(cur -> cur.identity() == currency).findFirst().orElseThrow();
currencyRate = currencyObj.rate();
< /code>
Это прекрасно работает в веб -приложении, но в Junit я получаю: < /p>
java.lang.NullPointerException: Cannot invoke "org.springframework.context.ApplicationContext.getBean(java.lang.Class)"
because "ctx" is null
< /code>
Я реализовал ApplicationContextProvider As ApplicationContextAware, который работает нормально. Только у Junit есть проблема.
Есть идеи?
tia
Подробнее здесь: https://stackoverflow.com/questions/794 ... l-in-junit