Я пытаюсь загрузить значение свойства из моего application-test.properties в своих модульных тестах службы (используя MockitoJUnitRunner.class), но оно всегда получает нулевое значение с использованием аннотации @Value.
@RunWith(MockitoJUnitRunner.class)
public class AlertQueryServiceImplTest {
@Value("${raw.path}")
private static String rawJson;
@InjectMocks
private AlertQueryServiceImpl alertQueryServiceImpl;
@Mock
private AlertCBDAOImpl alertCBDAOImpl;
private List<Alert> alertListExpected;
@Before
public void setUp() {
ReflectionTestUtils.setField(alertQueryServiceImpl, "url", "http://someurl");
alertListExpected = JsonUtils.
loadObjectList(Alert.class, JsonUtils.ALERTS_FILE);
assertFalse(alertListExpected.isEmpty());
}
@Test
public void shouldReturnAlerts() {
User userTest = new User("108998", "3000747091");
JsonDocument jsonDocExpected = JsonUtils.stringToJsonDocument(rawJson, userTest.getAssociatedBE());
when(alertCBDAOImpl.getDoc(userTest.getAssociatedBE())).thenReturn(jsonDocExpected);
when(alertCBDAOImpl.getAlerts(jsonDocExpected)).thenReturn(alertListExpected);
}
}
Как мне загрузить свойство raw.path в поле rawJson?




Сначала вам нужно установить активный профиль для доступа к файлу application-test.properties, вы можете сделать это с помощью аннотации @ActiveProfiles ("test") в вашем тестовом классе. https://www.baeldung.com/spring-testing-separate-data-source Я не думаю, что аннотация @Value будет работать со статическим ключевым словом.
Вы нашли решение? У меня точно такая же проблема.