Hi!

Yes, separating the forwarding from the rest is definitely a solution. 
Thanks very much for the help Kazuhito and Nicolas!

/Niklas

On Mon, 15 Aug 2005, Kazuhito SUGURI wrote:

> Hi Niklas,
> 
> In article <[EMAIL PROTECTED]>,
> Sat, 13 Aug 2005 12:24:54 +0200 (CEST),
> Niklas Lindholm <[EMAIL PROTECTED]> wrote: 
> cactuslist> > response.getWebRequest().getURL();
> cactuslist> 
> cactuslist> I have done a simple test and in that test the getURL() method 
> returns 
> cactuslist> null. So I get this failure:
> cactuslist> 
> cactuslist> junit.framework.AssertionFailedError: expected:<unit.jsp> but 
> was:<null>
> cactuslist> 
> cactuslist> I have a servlet that ends with this line:
> cactuslist> 
> cactuslist> req.getRequestDispatcher("unit.jsp").forward(req, res);
> cactuslist> 
> cactuslist> And in my endXXX() method I have this assertion:
> cactuslist> 
> cactuslist> assertEquals("unit.jsp", response.getWebRequest().getURL());
> cactuslist> 
> cactuslist> The endXXX() method is run on the client side. Will the client 
> side really 
> cactuslist> have information about what forward that has been done since this 
> typs of 
> cactuslist> forward is done entirely on the server side? I would imagine that 
> this 
> cactuslist> kind of assertion would have to go into the testXXX() method.
> 
> AFAIK, the getURL() method returns a simulated URL
> which is specified by WebRequest#setURL method.
> So, you cannot know a forwarded URL by using the method.
> 
> 
> cactuslist> > Why ?? It seems a great solution : you can check more ie that 
> there is
> cactuslist> > no error message in the page code...
> cactuslist> 
> cactuslist> Well.. in this case I don't want to verify the content of the 
> resulting 
> cactuslist> page. Only the logic of the servlet. And it could be pretty 
> difficult to 
> cactuslist> figure out from the resulting HTML which jsp page that actually 
> has been 
> cactuslist> invoked. (Unless I code some comment into it telling which jsp 
> page it 
> cactuslist> is.. hmm.. that might be a solution..)
> 
> If you are interested in the servlet logic, you might separate
> the logic into some methods to make your test easier. For your case:
> - a method returns String as a resource name to be forwarded
> - a method forward the request to the selected resource
> 
> For example, the code will be like as follows:
>     public String getForwardTo() {
>         // resource selection logic
>         return resourceName;
>     }
>     ...
>         req.getRequestDispatcher(getForwardTo()).forward(req, res);
> 
> You can write tests for the getForwardTo() method to verify
> the selection has been done properly.
> 
> If you want the forward is been done properly,
> you have to verify the resulting HTML in endXXX().
> To make it easier, you might insert ID string as a HTML comment
> in every JSPs.
> 
> Hope this helps,
> ----
> Kazuhito SUGURI
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to