Eureka を使用する Spring Boot アプリケーションで統合テストを作成する方法を見つけようとしています。テストがあると言う
@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();
これは NPE になります。discoveryClient は null として返されます。Spring ブート アプリを直接起動し、自分で API を使用すると、コードは正常に動作します。どこにも特定のプロファイルの使用法はありません。検出クライアントをテスト用に構築するために構成する必要がある、Eureka に関して特別な何かがありますか?