|
A Taste of Testing
In TDD, the most important thing is to write proper tests. Here are some basic guidelines that to follow:
- You should be able to run each test in isolation.
- The order in which you run the tests should not matter.
- Eliminate any duplicate logic within the tests.
- Each test should test one&3151;and only onebusiness concept. For example, never write one single test for testing for issuing a book and registering a membership.
- Test all pre-, post-, and exception-conditions.
Writing good test code is also challenging. Because there is no one else to write another set of test code for the test code you write, it is important to approach the task with care and attention. For example, the following test code is a disaster:
testAddition() {
assertEquals(3+2, MyProgram.add(3,2));
}
If you are testing the outcome of a function by passing some inputs, then you must know the outcome beforehand. So always write a test that looks like:
testAddition() {
assertEquals(5, MyProgram.add(3,2));
}
In another example, suppose you want to test that two objects are equal. You write a test like this:
testEquality() {
assertTrue(new MyObject(5).equals(new MyObject(5)) );
}
Great. However, this means that the class MyObject must have implemented an equals() method. Besides that, the above test is also a test for the equals() method and the test is not complete unless you test for inequality. So, the correct test should read like:
testEquality() {
assertFalse(new MyObject(5).equals(new MyObject(6)) );
}
The above two examples are only two of a thousand that explain how to write good tests.
One way to helps to ensure that you're taking the proper care and attention to writing your tests is pair programming. Pair programming is based on the assumption that two brains will work better than one. By using a pair of programmers, there is always greater chance of writing better tests and therefore writing a better system.
Deliver Your Code with Confidence
While all methodologies have their pros and cons, TDD is a way to improve your confidence in your delivered code. It helps validate your designs at early stage, helps re-factoring the code with confidence, and each business logic code is unit-tested. What else do you want to guarantee quality? First-timers may experience problems getting used to it, but my advice is to hang in there. It's worth it!
References:
Test Drive DevelopmentBy Example, by Kent Beck. Addison-Wesley Professional; 1st edition ISBN 0321146530, copyright 2002. All rights reserved.
Code Unit Test First
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.
|