Eureka'yı kullanan bir Spring Boot uygulamasında entegrasyon testlerinin nasıl oluşturulacağını anlamaya çalışıyorum.Entegrasyon Testi Eureka hizmetlerini kullanarak Spring Boot hizmeti
DiscoveryManager.getInstance().getDiscoveryClient().getApplications();
Bu irade NPE: Bir test
@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)));
}
}
var ve bu API çağrısı için benim kod yolunda olduğunu düşünelim. DiscoveryClient boş olarak döndürülür. Doğrudan Bahar önyükleme uygulamasına başlıyorum ve API'yi kendim kullanırsam kod iyi çalışır. Herhangi bir yerde belirli bir profil kullanımı yok. Test için yapılandırılmak üzere keşif istemcisi için yapılandırmam gereken özel bir Eureka wrt var mı?
sen/'ile testi çalıştırmak için istemiyorum olamaz bir neden var mı @ Entegrasyon Testi '[https://github.com/spring-cloud-samples/eureka/blob/master/src/test/java/eurekademo/ApplicationTests.java] gibi mi? –
Yup .. haklısın. 'Entegrasyon Testi 'veya' Webİntegrasyon Testi’yi kullanabilirim. Bütün bu yeni ek açıklamaları takip et! Problemi mükemmel bir şekilde çözer. Diğerleri için kodu cevaplayacağım ve değiştireceğim. – RubesMN