Мой Junit не выбирает свойства, заданные в файле свойств теста. Я не получаю ошибки, но значение, возвращаемое из файла свойств, равно null
КЛАСС ДЛЯ ТЕСТИРОВАНИЯ:
package com.abc.mysource.mypackage;
@Component
@ComponentScan
public class MyHelper {
@Autowired
@Qualifier("commonProperties")
private CommonProperties commonProperties;
public LocalDateTime method1ThatUsesCommonProperties(LocalDateTime startDateTime) throws Exception {
String customUserType = commonProperties.getUserType(); // Returns null if run as JUnit test
//Further processing
}
}
ПОДДЕРЖИВАЕМЫЕ КОМПОНЕНТЫ - КЛАССЫ БИНОВ И КОНФИГУРАЦИИ:
package com.abc.mysource.mypackage;
@Component
public class CommonProperties {
@Value("${myhelper.userType}")
private String userType;
public String getUserType() {
return userType;
}
public void setCalendarType(String userType) {
this.userType = userType;
}
}
КЛАСС КОНФИГУРАЦИИ:
package com.abc.mysource.mypackage;
@Configuration
@ComponentScan(basePackages ="com.abc.mysource.mypackage.*")
@PropertySource("classpath:default.properties")
public class CommonConfig {}
default.properties в src / main / resources
myhelper.userType=PRIORITY
МОЙ ТЕСТОВЫЙ КЛАСС:
package com.abc.mysource.mypackage.test;
@RunWith(SpringRunner.class)
@ContextConfiguration(classes=MyHelper.class)
@TestPropertySource("classpath:default-test.properties")
@EnableConfigurationProperties
public class MyHelperTest {
@MockBean(name="commonProperties")
private CommonProperties commonProperties;
@Autowired
private MyHelper myHelper;
@Test
public void testMethod1ThatUsesCommonProperties() {
myHelper.method1ThatUsesCommonProperties();
}
}
default-test.properties, определенные в / src / test / resources:
myhelper.userType=COMMON
ПРИМЕЧАНИЕ.
Я переместил default-test.properties в / src / main / resources - commonProperties.getUserType () имеет значение null
Я даже использовал @TestPropertySource (properties = {"myhelper.userType = COMMON"}). Тот же результат
ПРИМЕЧАНИЕ 2:
Я попробовал решение на @TestPropertySource не загружает свойства.
Это решение требует, чтобы я создал дублированный bean-компонент с именем CommonProperties в src / test / java. Но @MockBean терпит неудачу, когда я это делаю
@MockBean(name="commonProperties")
private CommonProperties commonProperties;
Пожалуйста, не отмечайте дубликат.
ПРИМЕЧАНИЕ 3: Mine - это пружина, а не приложение для весенней загрузки.