Set Up and Tear Down
Problem
You want to avoid duplicated code when several tests share the same initialization and cleanup code.
Solution
Use the setUp( ) and tearDown( ) methods. Both of these methods are part of the
junit.framework.TestCase class.
Discussion
JUnit follows a very specific sequence of events when invoking tests. First, it constructs a new instance of the test case for each test method. Thus, if you have five test methods, JUnit constructs five instances of your test case. For this reason, instance variables cannot be used to share state between test methods. After constructing all of the test case objects, JUnit follows these steps for each test method:
Calls the test case’s
setUp( )methodCalls the test method
Calls the test case’s
tearDown( )method
This process repeats for each of the test methods in the test case.
Example 4-3 shows how you can take advantage of
setUp( ) and
tearDown( ) to
avoid duplicated code.
Example 4-3. setUp( ) and tearDown( )
package com.oreilly.javaxp.junit;
import com.oreilly.javaxp.common.BadGameException;
import com.oreilly.javaxp.common.Game;
import com.oreilly.javaxp.common.Ship;
import junit.framework.TestCase;
/**
* Sample unit tests for the {@link Game} class.
*/
public class TestGame extends TestCase {
private Game game;
private Ship fighter;
public void setUp( ) throws BadGameException {
this.game = new Game( );
this.fighter = this.game.createFighter("001");
}
public void tearDown( ) {
this.game.shutdown( );
} public void testCreateFighter( ...Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access