Próbuję przetestować moje klasy działań za pomocą wtyczki jUnit. Akcja wygląda następująco:Test jednostki kończy się niepowodzeniem, gdy typem wyniku jest kafelek
@Action(value = "default", results = {
@Result(name = "success", type="tiles", location = "login") })
public String defaultAction() {
return SUCCESS;
}
Kiedy wezwać proxy.execute()
, wywala testowych. Przypuszczam, że prawdopodobnie zapomniałem czegoś, co sprawia, że mój test działa z kaflami, ale nie mam pojęcia, co to może być. otrzymuję następujący ślad stosu:
java.lang.NullPointerException
at org.apache.struts2.views.tiles.TilesResult.doExecute(TilesResult.java:105)
at org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:186)
at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:373)
...
Kiedy zmienić działanie jak poniżej, badanie wykonuje normalnie:
@Action(value = "default", results = {
@Result(name = "success", type="redirectAction", location = "login") })
public String defaultAction() {
return SUCCESS;
}
Możesz spróbować spojrzeć na linię 105 w TilesResult, aby zobaczyć, co spowodowałoby tam NPE. –
'TilesContainer container = TilesAccess.getContainer (servletContext); ... container.render (lokalizacja, żądanie, odpowiedź); '' container' ma wartość null. Ale nie wiem dlaczego. – Hayk