не удается извлечь добавленные данные из mysql с помощью junit5, когда я отправляю запрос на добавление

#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. Не могли бы вы, пожалуйста, добавить весь свой тестовый класс? Что вы имеете в виду под «не сработало»? Вы получаете исключение, из базы данных нет ответа и т. Д.?