Тестер калитки не ищет WebApplicationPath

В моем первом проекте Wicket (разработанном в Wicket 6.20 с использованием Eclipse mars и Glassfish 4.1) на основе архетипа Quickstart Maven я используюgetResourceSettings().getResourceFinders().add(new WebApplicationPath(getServletContext(), "html")); отделить разметку от кода.

Моя домашняя страница работает хорошо, но WicketTester выдает исключение org.apache.wicket.markup.MarkupNotFoundException: Can not determine Markup. Component is not yet connected to a parent. [Page class = ...MyProject.HomePage, id = 0, render count = 1]

Эта проблема, кажется, не рассматривается нигде в литературе.

1 ответ

Решение

После многих часов поиска тщательный сеанс отладки привел меня к JavaDoc для MockServletContext, который объясняет, что необходимо указывать абсолютный путь к корню приложения на диске, если используются ресурсы, отличные от заданных по умолчанию.

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

Итак, мой тестовый метод Setup() заканчивается:

return new WicketTester(new WicketApplication(),"<path to Eclipse workspace>/MyProject/src/main/webapp");
Другие вопросы по тегам