Я новичок в Spring Boot и Spring AWS Cloud.Я пытаюсь завершить этот урок http://www.briansjavablog.com/2016/05/spring-boot-angular-amazon-web-services.html. Несмотря на то, что урок действительно хорош, оказывается, у него нет никакого теста.
Я хотел бы выполнить некоторые интеграционные тесты с RDS в AWS, чтобы убедиться, что соединение в порядке.Я использую следующий класс в качестве конфигурации ресурса AWS:
@Configuration
@ImportResource("classpath:/aws-config.xml")
@EnableRdsInstance(databaseName = "${rds.name}",
dbInstanceIdentifier = "${rds.instance}",
password = "${rds.password}",
username = "${rds.username}")
public class AwsResourceConfig {
}
Я создаю тесты, подобные этому:
@RunWith(SpringRunner.class)
@SpringBootTest
@AutoConfigureMockMvc
@ActiveProfiles({"test"})
public class EmployeeControllerTest {
@Autowired
private MockMvc mvc;
@MockBean
private EmployeeRepository employeeRepository;
@Test
public void whenGetEmployees_thenEmployeesAreReturned() throws Exception {
// given
Employee employee = givenEmployee();
when(employeeRepository.findAll()).thenReturn(new ArrayList<>(Arrays.asList(employee)));
// when
MvcResult result = mvc.perform(get("/employees"))
.andReturn();
// then
assertThat(result.getResponse().getStatus()).isEqualTo(HttpStatus.OK.value());
assertThat(result.getResponse().getContentAsString()).isNotEmpty();
}
Но когда я запускаю эти тесты, кажется, что Spring ищетдля тех заполнителей, которые будут созданы.Я пытался добавить их в нескольких местах, но безуспешно.Я получил следующую ошибку:
Причина: org.springframework.beans.factory.BeanCreationException: Ошибка при создании компонента с именем '$ {rds.instance}': сбой вызова метода init;вложенное исключение: com.amazonaws.services.rds.model.AmazonRDSException: неверный идентификатор базы данных: $ {rds.instance} (служба: AmazonRDS; код состояния: 400; код ошибки: InvalidParameterValue; код запроса: e83246b2-bba4-4b5f-87ec-13851f0dd711)
Когда я запускаю это приложение локально, оно работает, как и ожидалось, только при запуске тестов.Ты знаешь почему?Пожалуйста, не стесняйтесь спрашивать о любом другом ресурсе, если он вам нужен.
Спасибо!