Java Reference
In-Depth Information
procedure named test... with no parameters for each test case, and the body of
each procedure contains one call to a method of class TestCase . We have writ-
ten independent methods for the test cases because the test cases are independ-
ent —one does not depend on another one working correctly.
This is one context where we do not write method specifications. Here, the
context is so specific, the bodies of the methods so simple, and the names of the
methods so descriptive that writing a specification for the methods would add lit-
tle. In this context, we know implicitly what each procedure does: it exercises a
test case.
14.1.5
Testing a class
Testing a class is harder than testing a method, for a class generally contains
many methods. The test driver should:
1. Declare at least one and perhaps more variables with the class as their
type.
2. Create instances of the class and assign them to the variables.
import junit.framework.TestCase;
public class TestNumberOfVowels extends TestCase {
public void testDuplicateVowels()
{ assertEquals(7, numberOfVowels("This sentence has vowels.")); }
public void testEmpty()
{ assertEquals(0, numberOfVowels("")); }
public void testNoVowels()
{ assertEquals(0, numberOfVowels("bcd")); }
public void testOneVowel()
{ assertEquals(1, numberOfVowels("a")); }
public void testOneVowelSeveralLetters()
{ assertEquals(1, numberOfVowels("bad")); }
public void testEveryVowelNoConsonants()
{ assertEquals(5, numberOfVowels("aeiou")); }
public void testEveryVowelSeveralConsonants()
{ assertEquals(5, numberOfVowels("facetious")); }
public void testNull()
{ assertEquals(0, numberOfVowels( null )); }
}
Figure 14.2:
An instance of TestCase to test TestNumberOfVowels
Search WWH ::




Custom Search