【发布时间】:2011-06-27 12:55:19
【问题描述】:
我正在尝试使用 jUnit 插件测试我的操作类。动作如下所示:
@Action(value = "default", results = {
@Result(name = "success", type="tiles", location = "login") })
public String defaultAction() {
return SUCCESS;
}
当我拨打proxy.execute() 时,测试崩溃。我可能忘记了
使我的测试与瓷砖一起运行的东西,但我不知道那可能是什么。
我得到以下堆栈跟踪:
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)
...
当我改变如下动作时,测试正常执行:
@Action(value = "default", results = {
@Result(name = "success", type="redirectAction", location = "login") })
public String defaultAction() {
return SUCCESS;
}
【问题讨论】:
-
您可以尝试查看 TilesResult 中的第 105 行,看看是什么导致了 NPE。
-
TilesContainer container = TilesAccess.getContainer(servletContext); ... container.render(location, request, response);container为空。但我不知道为什么。
标签: unit-testing junit struts2 tiles