Отображение оставшегося пост-запроса на объект - PullRequest
0 голосов
/ 17 марта 2020

У моего тестируемого приложения конечная точка определена, как показано ниже:

@ResponseBody
@RequestMapping(value = "maxsize", method = RequestMethod.POST)
public ResponseEntity<Void> changeMaxQuoteSize(@RequestBody DataRequest dataRequest,
                                               @AuthenticationPrincipal UserProfile userProfile) {

    orderManager.scheduleUpdateCurrencyConfigRules(dataRequest.getCurrency(),
            (c) -> c.setMaxQuoteSize(dataRequest.getMaxSize()))

    return ResponseEntity.status(HttpStatus.OK).build();
}

Я хочу отправить ему сообщение, используя уверенность, но у меня вопрос, как сопоставить тело запроса с объектом DataRequest?

Я пробовал таким образом:

class DateRq {
    private String curpair;
    private Double maxQuoteSize;

    public DateRq(String curpair, Double maxQuoteSize) {
        this.curpair = curpair;
        this.maxQuoteSize = maxQuoteSize;
    }
}

@Test
public void test() {
    String endpoint = "http://127.0.0.1:8095/api/maxsize";

    DateRq request = new DateRq(TICKER_SYMBOL, 5_000_000D);

    Response response = RestAssured.given()
            .when()
            .body(request)
            .post(endpoint);

    assertEquals(200, response.getStatusCode());
}

, но получаю такую ​​ошибку: com.faster xml .jackson.databind.ex c .InvalidDefinitionException: не найден сериализатор для класса com. ..PMTest $ DateRq и не обнаружено свойств для создания BeanSerializer (чтобы избежать исключения, отключите SerializationFeature.FAIL_ON_EMPTY_BEANS)

Я пытался с каким-то JSON, но мы не получили никакого ответа:

    @Test
public void test() {
    String endpoint = "http://127.0.0.1:8095/api/maxsize";

    String request = new JSONObject()
            .put("curpair", TICKER_SYMBOL)
            .put("maxQuoteSize", 5_000_000D)
            .toString();

    Response response = RestAssured.given()
            .when()
            .body(request)
            .post(endpoint);

    assertEquals(200, response.getStatusCode());
}

1 Ответ

0 голосов
/ 17 марта 2020

Вы пробовали подобный код?

DateRq request = new DateRq(TICKER_SYMBOL, 5_000_000D);

Response response = RestAssured.given()
        .body(request)
        .when()
        .post(endpoint);
...