Próbuję przetestować mój projekt wicket za pomocą testu strony Wicket.Test strony wicket, konfiguracja zabezpieczenia Jetty
rozpoczęciem testu powoduje Jetty rzucić ten błąd:
2015-03-24 17:46:24,789 WARN [:] [main] [] [||] - org.eclipse.jetty.webapp.WebAppContext - Failed startup of context o.e.j.w.WebAppContext
java.lang.IllegalStateException: No LoginService for [email protected]51268 in [email protected]
Moja TestNG apartament wygląda tak:
<suite name="wicket-page-test-sample">
<test verbose="2" name="tests" annotations="JDK">
<packages>
<package name="..."></package>
</packages>
<classes>
<class name="com.ttdev.wicketpagetest.WebPageTestContext"></class>
<class name="nl.pack.test.MessagePanelTest"></class>
</classes>
</test>
Klasa badanie wygląda tak:
@Test
public class MessagePanelTest
{
public void testOpenComponent()
{
final StringBuffer log = new StringBuffer();
MockableSpringBeanInjector.mockBean("hibernateService", mock(HibernateService.class));
WicketSeleniumDriver ws = WebPageTestContext.getWicketSelenium();
ws.openComponent(new ComponentFactory()
{
private static final long serialVersionUID = 1L;
public Component createComponent(String id)
{
return new MessagePanel(mock(AjaxRequestTarget.class));
}
});
assert ws.getText(By.id("info")).equals("Hello");
}
}
Znalazłem kilka sugestii w Internecie na temat zmiany konfiguracji Jetty w ten sposób:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">
<Configure class="org.eclipse.jetty.webapp.WebAppContext">
<Get name="securityHandler">
<Set name="loginService">
<New class="org.eclipse.jetty.security.HashLoginService">
<Set name="name">MySecurityRealm</Set>
<Set name="config">src/test/resources/jetty-realm.properties</Set>
<Call name="start"/>
</New>
</Set>
<Set name="checkWelcomeFiles">true</Set>
</Get>
</Configure>
Ale nie chciałbym teraz włączyć tej konfiguracji do moich testów. czego mi brakuje? Jak powinienem skonfigurować pomost do mojego testu?
można dać jako jakiegoś bardziej wejścia w jaki sposób web.xml jest skonstruowany? Głównym problemem jest oczywiście to, że pomost nie może znaleźć usługi loginService dla login-config. Za pomocą wbudowanego pomostu możesz zwykle dodać tę usługę przez "server.addBean (loginService);" - ale tester furtek nie pozwala na wiele dostosowań, jak uruchomić serwer pomostowy itp. –