JUnit mockMVC тестирует классы контроллеров пружин, которые используют спящий режим. Таблица не отображены исключения брошены - PullRequest
0 голосов
/ 30 октября 2019

Я пытаюсь создать тесты JUnit для классов контроллеров Spring Framework.

Класс, который я пытаюсь протестировать, использует hibernate / HQL для извлечения данных из базы данных MySQL.

What I 'При попытке проверить заданы разные параметры для HQL, он должен возвращать конкретные данные из базы данных, в данном случае вылетает.

При запуске тест выдает исключение, когда пытается выполнить запрос с

org.hibernate.hql.internal.ast.QuerySyntaxException: <tablename> is not mapped

Вот класс JUnit:

  import org.junit.Before;
  import org.junit.Test;
  import org.springframework.test.web.servlet.MockMvc;

  import org.springframework.web.servlet.view.InternalResourceViewResolver;

  import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
  import static org.springframework.test.web.servlet.setup.MockMvcBuilders.standaloneSetup;


  public class SearchTest {
      private MockMvc mockMvc;

      private AjaxSearchController ajaxS;

      @Before
      public void setup() throws Exception {
          InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
          viewResolver.setPrefix("/WEB-INF/views/");
          viewResolver.setSuffix(".jsp");

          ajaxS = new AjaxSearchController();
          this.mockMvc = standaloneSetup(ajaxS).setViewResolvers(viewResolver).build();
      }

      @Test
      public void testSearch() {
          String recommendation = " ";
          String departure = "Perth, Australia";
          String arrival = "Melbourne, Australia";
          String departureDate = "2018-09-27";
          try {
              mockMvc.perform(post("/ajax")
                      .param("recommendation", recommendation)
                      .param("departure", departure)
                      .param("arrival", arrival)
                      .param("departureDate", departureDate));
          } catch (Exception e) {
              e.printStackTrace();
          }
      }
  }

Тесты выполняются из каталога projectname.test.

Класс контроллера работает нормально внеJUnit, когда веб-приложение работает нормально.

Как получить спящий режим, чтобы увидеть классы сущностей, необходимые для этих тестов.

Редактировать:

Попытка получить вебконтекст приложения работает. файл config.xml находится в test / resources.

  import org.junit.Before;
  import org.junit.Test;
  import org.junit.runner.RunWith;
  import org.springframework.beans.factory.annotation.Autowired;
  import org.springframework.test.context.ContextConfiguration;
  import org.springframework.test.context.junit4.SpringRunner;
  import org.springframework.test.context.web.WebAppConfiguration;
  import org.springframework.test.web.servlet.MockMvc;

  import org.springframework.test.web.servlet.setup.MockMvcBuilders;
  import org.springframework.web.context.WebApplicationContext;

  import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;


  @RunWith(SpringRunner.class)
  @WebAppConfiguration
  @ContextConfiguration("classpath: config.xml")

  public class SearchTest {
      private MockMvc mockMvc;

      @Autowired
      private WebApplicationContext webApplicationContext;

      @Before
      public void setup() throws Exception {
          this.mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build();
      }

      @Test
      public void testSearch() {
          String recommendation = " ";
          String departure = "Perth, Australia";
          String arrival = "Melbourne, Australia";
          String departureDate = "2018-09-27";
          try {
              mockMvc.perform(post("/ajax")
                      .param("recommendation", recommendation)
                      .param("departure", departure)
                      .param("arrival", arrival)
                      .param("departureDate", departureDate));
          } catch (Exception e) {
              e.printStackTrace();
          }
      }
  }

Выдает следующую ошибку:

java.io.FileNotFoundException: class path resource [ config.xml] cannot be opened because it does not exist
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...