@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = TestConfig.class)
@WebAppConfiguration
public class ConfigurationControllerTest {
@Autowired
WebApplicationContext wac;
private MockMvc mockMvc;
@Before
public void setup(){
MockitoAnnotations.initMocks(this);
this.mockMvc = MockMvcBuilders.webAppContextSetup(wac).build();
}
@Test
public void testShouldReturnConfig() throws Exception {
mockMvc.perform(get("/api/v1/config/get", "vasya"))
.andExpect(status().isOk());
}
}
//
@RestController
@RequestMapping(value = BasePath.V1)
public class ConfigurationController {
@Autowired
private ConfigurationService configurationService;
@RequestMapping(value = "/config/set", method = RequestMethod.POST)
public void setConfiguration(@RequestBody @NotNull ConfigurationDto dto) {
this.configurationService.setConfig(dto);
}
@RequestMapping(value = "/config/get", method = RequestMethod.GET)
public ConfigurationDto getConfiguration(@RequestParam(name = "name") String name){
ConfigurationDto dto = new ConfigurationDto();
Configuration config = this.configurationService.getConfig(name);
HttpNotFoundException.ifNull(config);
dto.name = config.getName();
dto.server.port = config.getServerPort();
dto.hh.login = config.getAgentLogin();
dto.hh.password = config.getAgentPassword();
dto.hh.url = config.getAgentUrl();
dto.hh.clientId = config.getAgentClientId();
dto.hh.clientSecret = config.getAgentClientSecret();
dto.hh.accessToken = config.getAgentAccessToken();
dto.hh.refreshToken = config.getAgentRefreshToken();
return dto;
}
//
java.lang.AssertionError: Status
Expected :200
Actual :400
Через swagger все работает отлично, выдает 200
Для начала:
Тест Json подразумевает получение контента и сравнение его с ожидаемым результатом https://spring.io/guides/tutorials/bookmarks/ https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-testing.html
Конкретней - нужно будет добавить строки по типу
.accept(MediaType.TEXT_PLAIN))
.andExpect(content().string(/** Здесь ваш JSON **/))
В вашем случае:
400 ststus bad request то есть ваш запрос не правильно сформирован, скорее всего дело в параметре "vasya", не углубляясь в работу MockHTtpServletBuilder и т.д. предлагаю альтернативный вариант: так как это get-запрос вы могли б просто добавить параметры в url
/api/v1/config/get?name=vasya
Если же захотите отправлять именно объект - то вам понадобиться чтобы это был полноценный класс с полем name и значением "vasya"
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Прошу прощения, если вопрос покажется глупым, но почему не компилируется этот код:
Всем привет тут читаю о подключении к AWS http://docsaws
Как сделать transparent у seekBargetProgressDrawable()? Делая seekBar
Как создать пиксель закрашенный цветом? Необходимо на activity создать пиксель, закрашенный цветомСамым простым способом