Тестер калитки не ищет 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");