Если это стандартный юнит-тест, используйте Mockito для макета боба:
@RunWith(MockitoJUnitRunner.class)
public class SomeTest{
@Mock
private BuildProperties buildProperties;
...
Или, если это тест Spring MVC:
@RunWith(SpringRunner.class)
@WebMvcTest(value = MyController.class)
public class MyControllerTest{
@MockBean
private BuildProperties buildProperties;
Версия будет null
, поскольку все методы проверяемого компонента возвращают null
.
, если вы хотите эмулировать реальную версию, вы можете добавить что-то подобное в свой тест или в метод setUp()
given(buildProperties.getVersion()).willReturn("whatever");
--------------- edit
К сожалению, все вышеперечисленные решения работают, только если компонент buildProperties был добавлен в модель напрямую.Но в вашем случае вы используете бин напрямую в качестве ссылки на бин SpEL.К сожалению, я не знаю способа проверить, существует ли bean-компонент в контексте через SpEL.Кроме того, не рекомендуется добавлять дополнительный код в ваш код для проверки его работы в тестовом режиме.Поэтому я считаю лучшим решением, если вы создадите вложенный класс конфигурации теста и определите там bean-компонент BuildProperties по умолчанию.
@TestConfiguration
public static class TestConfig {
@Bean
BuildProperties buildProperties() {
return new BuildProperties(new Properties());
}
}
Или вы можете использовать @Import(TestConfig.class)
, если вам нужна дополнительная конфигурация в нескольких классах тестирования.