HttpUnit is an open source test framework for web applications which can provide browser specific behaviour like sending request to the We are using Spring sts , JDK 8, HttpUnit JUnit Tutorial for Unit Testing. 4. However if you’re a programmer who just got the job to create functional or unit tests, you’ll find HttpUnit a much more enjoyable and programmer-friendly toolkit. HttpUnit allows us to test navigating through our JSPs by clicking links and buttons and filling out forms. In this tutorial, we will explain.

Author: Matilar Talabar
Country: Martinique
Language: English (Spanish)
Genre: Medical
Published (Last): 25 December 2005
Pages: 283
PDF File Size: 10.22 Mb
ePub File Size: 20.26 Mb
ISBN: 649-4-26354-898-2
Downloads: 71677
Price: Free* [*Free Regsitration Required]
Uploader: Shalkis

Obviously httpumit a bad idea to keep the server name in the Java implementation – for each new server we’d need to recompile our sources.

Invoking the servlet via its URL. Our application the target of the test should not be aware tutlrial any difference when serving up pages to a web browser or the test tool.

Searching for the Holy Grail of software development This simulates what the user would do if he was filling out a form in a web browser.

It could be argued that externalizing the URLs to property files for example could potentially reduce the effort to maintain the Test Cases, but it would be harder for a tester to review and update a Test Script.

I think it’s important not to treat the TC code as important systems code – it must be easy to maintain it, and it should not require a J2EE Architect to understand it and work with it. As the name suggests, it can be used for Unit testing, however my opinion is that typical web layer components like JSP pages, servlets, or any other template components do not lend themselves to unit testing too well.

Potentially each component can pass the unit tests alone – however the developers need to make sure that they work together as expected, as part of a subsystem, and as part of the whole application, hence integration tests must be performed. This way the developers and the management can see the status of the application.


The specific Test Case implementations will contain one test method per Test Case scenario from the Test Case specification document.

Create a JSP file file example1. In a typical enterprise application, there are many areas requiring testing.

Your Page Title

Extract the downloaded file into your favorite directory. If I realize that within a Test Case class I need to copy-and-paste code sections, I can just use the Refactoring menu to create a method from the code section instead.

Specifying the authorization information. I use Eclipse 3. First of all it is necessary to create an object of this class to maintain the state with the server and httpunig the role of web browser. Invoking the pool editor. Pay particular attention to the todo comments. We will also need the Ant build tool to run the tests and generate reports automatically. Once all scores have been entered, the administrator posts the results.

Unit Testing with HTTPUnit

This could be just a simple code comment, or a complex mechanism where the test reports themselves link to the documents; the important thing is to have the reference in the code, and to keep the traceability. We need to be careful here as well: The user httpujit change his httpuit until the pool is closed.

You might also consider putting your todo comments in your test cases, rather than in the code itself. While tools recording the Browser activity tend to record every insignificant detail, with big and hard-to-modify recorded scripts, using HttpUnit will allow a developer to create readable, concise, and cleanly structured code, which can focus on validating the important details.

Once the data is correct, the administrator opens the pool for betting. OK, now we know the boring stuff, let’s download some cool toys! For this create another jsp file example2.


I think the visual feedback is really important – it gives a nice sense of accomplishment especially httpunt writing Unit Tests for our own code. Instead, work on tiny pieces of functionality with each new test.

For example, if we assert specific page titles, our tests will probably not run if the language is selectable in the application, and we want to verify a different language deployment. Most Test Cases do not need a specific user to carry out the activities, they typically require a user in a specific Role, like Administrator, or Visitor, or RegisteredUser.

The Application Our application is an office sport betting pool.

Unit Testing with HTTPUnit

I always create a LoginMode enum, which contains the available roles. So any automated test run should be executed on a cleanly built system, using a fresh database, which may already contain some test data specified in the Test Cases. The initial tasks will use the ServletRunner class, thus bypassing the need for a web browser or servlet engine. During the coding, you’ll realize that there are many code sections which appear in more than one TC implementation potentially in all of the TCs.

Even better, you might want to refactor the validation logic into a helper class rather than the servlet itself.

It is best suited for the implementation of automated functional tests, or acceptance tests. The system will indicate the correct predictions and the user’s rank in the pool. Each method typically logs in with tktorial specific Role, and then executes the interaction with the web application.