Отправляю GET-запрос в тесте через mockMvc:
String calculateProgramsAsString = mockMvc.perform(get("/health/program/calculate/" + MEMBER_ID + "/75.5"))
.andDo(print())
.andExpect(status().isOk())
.andExpect(jsonPath("$.header").exists())
.andExpect(jsonPath("$.data").isNotEmpty())
.andReturn().getResponse().getContentAsString();
Принимающий контроллер:
@RequestMapping(method = RequestMethod.GET, value = "/calculate/{id}/{weight}", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<AppGenericEntity<BakProgramPackDto>> getPrograms(@PathVariable("id") Long id,
@PathVariable("weight") String weight) {
Почему-то приходит 75.0. При замене на 75,5 падает. При замене на String weight приходит 75.
Проблема решилась следующим образом:
Пришлось поставить слэш в конце запроса, обозначив, таким образом, границы переменной {weight}.
String calculateProgramsAsString = mockMvc.perform(get("/health/program/calculate/" + MEMBER_ID + "/75.5/"))
Контроллер:
@RequestMapping(method = RequestMethod.GET, value = "/calculate/{id}/{weight}/", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<AppGenericEntity<BakProgramPackDto>> getPrograms(@PathVariable("id") Long id,
@PathVariable("weight") Double weight) {
Можно было бы домножить на 10-100 и соответственно разделить.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей