Как мне получить доступ к DispatcherServlet с помощью MockMvc? - PullRequest
0 голосов
/ 28 мая 2019

У меня есть базовое приложение SpringMVC, которое работает (и отображается) нормально. Теперь я хотел настроить свои UnitTests с помощью MockMvc для выполнения запросов на получение и прочее. Но если я запускаю тест, возникает AssertionError «Ожидается состояние: <200>, но было: <404>», и моя консоль выдает предупреждение «Не найдено сопоставление для HTTP-запроса с URI [/] в DispatcherServlet с именем« ». У меня такое ощущение, что мой MockMvc не может связаться с моим DispatcherServlet, так как мне определить это соединение?

Вот мой короткий тестовый класс:

@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@ContextConfiguration
public class HomeControllerTest {

  private MockMvc mvc;
  @Autowired
  private WebApplicationContext wac;

  @Before
  public void setup() throws ServletException {
    mvc = MockMvcBuilders.webAppContextSetup(wac).build();
  }

  @Test
  public void testLandingPagePath() throws Exception {
    mvc.perform(get("/")).andExpect(status().isOk());
  }
}

Так что я ожидал, что MockMvc получит местоположение моего DispatcherServlet по умолчанию. Но на самом деле это не вызывает это для картирования.

У меня есть файлы "web.xml" и "dispatcher-servlet.xml", расположенные в папке "WEB-INF", и дополнительная конфигурация не определена.

Мне показалось, что проблема основана на структуре моего проекта, но это базовое затмение "Динамическое веб-приложение", тесты расположены в "src / test / java", параллельно "src / main / java" .

Я ценю любую помощь, так как последние 2 часа я трачу на чтение решений, но не нахожу хитрости.

1 Ответ

0 голосов
/ 29 мая 2019

Через некоторое время я получил вещи прямо сейчас: Я до сих пор не могу получить доступ к dispatcher-servlet.xml в папке WEB-INF. Я добавил новый пакет «config» в свой тестовый пакет параллельно с моим тестовым пакетом «controller» и поместил туда копию dispatcher-servlet.xml, которая называется «test-dispatcher-servlet.xml».

Теперь мой тестовый класс может получить к нему доступ с помощью

@ContextConfiguration("../config/test-dispatcher-servlet.xml")
public class HomeControllerTest {

Надеюсь, что это может помочь тем, кто начинает с весеннего тестирования MVC: -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...