Я пытаюсь понять, как создавать интеграционные тесты для приложения Spring Boot, использующего Eureka. Скажи, что у меня есть тест
@WebAppConfiguration
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = {Application.class})
public class MyIntegrationTest {
@Autowired
protected WebApplicationContext webAppContext;
protected MockMvc mockMvc;
@Autowired
RestTemplate restTemplate;
@Before
public void setup() {
this.mockMvc = MockMvcBuilders.webAppContextSetup(this.webApplicationContext).build();
}
@Test
public void testServicesEdgeCases() throws Exception {
// test no registered services
this.mockMvc.perform(get("/api/v1/services").accept(MediaType.APPLICATION_JSON).contentType(MediaType.APPLICATION_JSON))
.andDo(print())
.andExpect(status().isOk())
.andExpect(jsonPath("$").value(jsonArrayWithSize(0)));
}
}
и у меня есть путь кода для этого вызова API:
DiscoveryManager.getInstance().getDiscoveryClient().getApplications();
Это будет НПЭ. DiscoveryClient возвращается как null. Код работает нормально, если я запускаю загрузочное приложение Spring напрямую и сам использую API. У меня нигде нет конкретного использования профиля. Есть ли что-то особенное для Eureka, что мне нужно настроить, чтобы клиент обнаружения был создан для тестирования?
@IntegrationTest
, например здесь? - person Donovan Muller   schedule 21.05.2015@IntegrationTest
или@WebIntegrationTest
. Не могу угнаться за всеми этими новыми аннотациями! Отлично решает проблему. Я отвечу и изменю код для других. - person RubesMN   schedule 21.05.2015