DbUnit test Life Cycle

Understanding DbUnit test Life Cycle

DbUnit test Life Cycle

     

DbUnit framework follows some steps in its life cycle :

  1.  Removing the old data left in the database from previous tests.
  2.  Loading some data from XML file into the database.
  3.  Running the test.

DatabaseTestCase class provides two methods setUp() and TearDown() which internally call getSetUpOperation() and getTearDownOperation() methods respectively. setUp() method provides the setup operation DatabaseOperation.CLEAN_INSERT or DatabaseOperation.REFRESH. DatabaseOperation.CLEAN_INSERT operation is the combination of two operations DELETE_ALL and INSERT. So data defined in the XML file is loaded in the database by this operation. First two steps of the life cycle are executed when executing the setUp() method before running the test. These steps allow you not to waste time in writing code to restore state in the database. DatabaseOperation.REFRESH updates the desired database with the data found in the XML file. The getTearDownOperation() performs a NONE operation which does nothing.

protected void setUp() throws Exception{
  super.setUp();
  executeOperation(getSetUpOperation());
  }
protected void tearDown() throws Exception{
   super.tearDown();
   executeOperation(getTearDownOperation());
  }
protected DatabaseOperation getSetUpOperation() throws Exception{
  return DatabaseOperation.CLEAN_INSERT;
  }
protected DatabaseOperation getTearDownOperation() throws Exception{
  return DatabaseOperation.NONE;
}

DbUnit can work with default behavior, however, you can override the methods according to the s requirement.