StrutsTestCase: The Tool for Struts Unit testing
by Keld H. Hansen
Introduction
The Struts
framework from the Jakarta project is one of the most
successful open source projects around today.
Part of every IT-project includes testing, and Struts
projects are no different. If we look at testing "from the
bottom up", we start by unit testing the classes and
methods we're developing. Extreme programmers actually write
their unit test cases before the code they're supposed to test!
As the project progresses, we step up through the application
architecture to module, integration and system testing. You may
use different words for your test phases, but the idea is to
start at the very detailed level and finish by letting the end
users test the functionality of the system, in order to see that
what they get is what was promised to be delivered!
This article is about unit testing a part of your Struts
application, specifically how you test the Action class.
Let's see where the Action class fits into the Struts
architecture:
Figure 1: The Struts architecture
The Action class is the glue between the Struts
ActionServlet and your business logic (the
"Model"). Before testing your Action classes
you'll normally have finished unit testing your business logic,
and since these classes are normal Java classes which should
have no connections to the servlet environment, you might have
been using JUnit for the
task. JUnit is also from the open source area, and it's just as
popular as Struts. If you need to brush up your knowledge on
JUnit I can recommend this tutorial on JUnit.
If you know JUnit you'll be happy to also learn that an
extension exists which makes it possible to test the
Action classes. This may come as a surprise, since testing
the Action class is quite another thing than testing a
class from your business logic. When you test a method from the
business logic you write a small program that calls the method,
and afterwards you check the outcome of this call. Testing the
Action class is the same as testing the execute method
(in pre Struts 1.1 it was called perform), but how would you
call this method? The signature of the method is this:
public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
|
In order to make the call you'd have to supply four
troublesome parameters, giving access to the Struts set-up and
the servlet environment. No easy task. To our rescue comes
StrutsTestCase.
New on the Java Boutique:
New Review:
Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling
API boasts simplicity, ease-of-integration, a well-rounded feature
set, and it's free!
New Applet:
Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA
sequences into three useful formats.
Elsewhere on internet.com:
WebDeveloper Java
Lots of Java information on webdeveloper.com
WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.
ScriptSearch Java
Hundreds of free Java code files to download.
jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.
|