Модульное тестирование пружинного загрузочного контроллера
Я пытаюсь провести модульное тестирование моего весеннего загрузочного контроллера. Здесь контроллер вызывает метод, который, в свою очередь, переходит в другую конечную точку, чтобы получить оттуда ответ. Теперь, как мне проверить этот случай?
- Мне нужно поднять это приложение перед запуском моего тестового примера (которым является сам родитель), как это можно сделать в самом тестовом примере.
Если мне нужно использовать MockMVC, я не уверен, как настроить приложение, используя то же самое.
@RestController public class MyController { @Autowired private RestTemplate restTemplate; @Bean // to map RestTemplate objects on auto wiring RestTemplate restResponseTemplate() { return new RestTemplate(); }
// для проверки этого метода, здесь, чтобы получить ответ, конечная точка должна быть активной, то есть само это приложение
@ApiOperation(value = "Get a default GreetingService")
@RequestMapping(value = "/envProp", method = RequestMethod.GET)
public Object getProperties(String hostEndpoint) throws IOException {
RestTemplate restTemplate = new RestTemplate();
LinkedHashMap response = (LinkedHashMap) RestTemplate.getForObject(hostEndpoint + "/env", Object.class);
return new Variables(response);
}
// тестовое задание
@RunWith(SpringRunner.class)
public class MyController Test {
private MyController myController = new MyController ();
private MockMvc mvc;
@Before
public void setup() {
this.mvc = standaloneSetup(new MyController()).build();
}
@Test
public void testToGetProperties() throws Exception {
this.mvc.perform(get("/envProp")
.param("hostEndpoint","http://localhost:8080")
.contentType(MediaType.APPLICATION_JSON))
.andExpect(status().isOk());
}