#java #junit5
#Ява #июнь5
Вопрос:
я создал запрос MockMvcRequestBuilders.post()
, отправил и получил ответ, который указывает, что эти данные были добавлены в базу данных, но я не могу извлечь эти данные, когда использую Dao для запроса.
/** * this is a parameterized test using junit5 * @param submitBookingOrderRequest * @throws JsonProcessingException */ @ParameterizedTest // @Transactional @Rollback(false) @MethodSource("submitBookingOrderRequestProvider") public void submitBookingGenerateShipping(SubmitBookingOrderRequest submitBookingOrderRequest) throws JsonProcessingException { if (submitBookingOrderRequest.getTransportType() != "CY-CY") return; //------------------------------------------ build a request MockHttpServletRequestBuilder requestBuilder = buildJsonPost("/api/shipping/shipper/booking_order_submit", submitBookingOrderRequest); //------------------------------------------ send request String result = sendAndCheckRequest(requestBuilder); //------------------------------------------ return a bookingNo of the added data String bookingNo = this.mapper.readTree(result).findValue("data").toString(); // got this String transportType = submitBookingOrderRequest.getTransportType(); log.info("bookingNo:" bookingNo); log.info("saved booking:" bookingDao.findBookingByBookingNo(bookingNo)); // null }
это другая функция:
private lt;Tgt; MockHttpServletRequestBuilder buildJsonPost(String requestUrl, T jsonObject) throws JsonProcessingException { return MockMvcRequestBuilders.post(requestUrl) .content(this.mapper.writeValueAsString(jsonObject)) .contentType(MediaType.APPLICATION_JSON_VALUE); } private String sendAndCheckRequest(MockHttpServletRequestBuilder requestBuilder) throws Exception { return mockMvc.perform(requestBuilder) .andExpect(MockMvcResultMatchers.status().isOk()) .andExpect(MockMvcResultMatchers.jsonPath("code").value("000")) .andReturn().getResponse().getContentAsString(Charset.forName("UTF-8")); }
я попытался использовать собственный запрос, но все равно не получилось.
@Query(value = "select * from booking where booking_no=:bookingNo",nativeQuery = true) Booking findBookingByBookingNoNative(String bookingNo);
Комментарии:
1. Не могли бы вы, пожалуйста, добавить весь свой тестовый класс? Что вы имеете в виду под «не сработало»? Вы получаете исключение, из базы данных нет ответа и т. Д.?