struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Timothy Astle <>
Subject Re: Writing a unit test that goes through result-types
Date Wed, 25 Feb 2009 14:42:53 GMT
Thanks for the tip Greg.  I quickly went through the debugger based on 
the example here:

and I learned two things.

1.  execute() does call getSettings().  All that CRUD nonsense was me 
not being sure it was actually calling the method I wanted because it 
threw an exception upon execution.

2.  It looks like adding the following to the createAction(..) method 
fixed my first problem.  I had an interceptor putting a variable on the 
session, but no session was set, triggering a NullPointerException.

proxy.getInvocation().getInvocationContext().setSession(new HashMap());

Now I'm just running into a problem where the 
TilesAccess.getContainer(servletContext) is returning a null.  This is 
in the org.apache.struts2.views.tiles.TilesResult class.

    public void doExecute(String location, ActionInvocation invocation) 
throws Exception {

        ServletContext servletContext = 
        TilesContainer container = TilesAccess.getContainer(servletContext);

        HttpServletRequest request = ServletActionContext.getRequest();
        HttpServletResponse response = ServletActionContext.getResponse();

// fails because the container is null
        container.render(location, request, response);

I will post my final results when I get that part figured out.  If 
someone can offer a tip, I'd appreciate it.  I'm learning as I go here.


Greg Lindholm wrote:
> You can take a look at this:
> I've used it to unit test actions all the way through interceptors,
> validation, actions, and results including freemarker result types.
> Timothy Astle wrote:
>> I had tried using proxy.execute(), which will use Struts.  Maybe that's 
>> where I'm a bit lost.  I don't implement execute() because of my CRUD 
>> approach.
>> Can someone point me to some appropriate struts 2 junit tests so I can 
>> figure this out?

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message