Differences between revisions 5 and 6
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
[http://www.dbunit.org/ DbUnit] is a very handy tool for inserting test data into your database or confirming data after your tests. Sometimes, however, you run into gotchas. [[http://www.dbunit.org/|DbUnit]] is a very handy tool for inserting test data into your database or confirming data after your tests. Sometimes, however, you run into gotchas.
Line 3: Line 3:
 * [http://www.systemmobile.com/wp/?p=109 Inserting timestamps] -- They have to be formatted as "`yyyy-MM-dd HH:mm:ss.fffffffff`"
 * [http://idiacomputing.com/moin/PrimaryKeyGeneration#head-d7949da7a424b68c0ae6279e11b7e8718331321e autonumbered primary keys] -- you've got to let DbUnit generate the keys.
 * Some columns not populating? You probably didn't specify a DTD and those columns weren't mentioned in the data for the first row. See the [http://dbunit.sourceforge.net/components.html#flatxmldataset warning] and [http://dbunit.sourceforge.net/faq.html#generatedtd instructions] for generating a DTD. I temporarily added a test as a quick-and-dirty way of executing this:
 * [[http://www.systemmobile.com/wp/?p=109|Inserting timestamps]] -- They have to be formatted as "`yyyy-MM-dd HH:mm:ss.fffffffff`"
 * [[http://idiacomputing.com/moin/PrimaryKeyGeneration#head-d7949da7a424b68c0ae6279e11b7e8718331321e|autonumbered primary keys]] -- you've got to let DbUnit generate the keys.
 * Some columns not populating? You probably didn't specify a DTD and those columns weren't mentioned in the data for the first row. See the [[http://dbunit.sourceforge.net/components.html#flatxmldataset|warning]] and [[http://dbunit.sourceforge.net/faq.html#generatedtd|instructions]] for generating a DTD. I temporarily added a test as a quick-and-dirty way of executing this:

DbUnit is a very handy tool for inserting test data into your database or confirming data after your tests. Sometimes, however, you run into gotchas.

  • Inserting timestamps -- They have to be formatted as "yyyy-MM-dd HH:mm:ss.fffffffff"

  • autonumbered primary keys -- you've got to let DbUnit generate the keys.

  • Some columns not populating? You probably didn't specify a DTD and those columns weren't mentioned in the data for the first row. See the warning and instructions for generating a DTD. I temporarily added a test as a quick-and-dirty way of executing this:

    public void testExportDtd() throws Exception {
        IDatabaseConnection connection = getConnection();
        FlatDtdDataSet.write(connection.createDataSet(),
                new FileOutputStream(XML_DATASET_ROOT+"test.dtd"));
    }
  • Don't forget to add the DTD declaration to the top of your XML file: <!DOCTYPE dataset SYSTEM "testdata/test.dtd"> Unfortunately, DbUnit interprets this path from the location of execution, while the XML validator of MyEclipse interprets the path relative to the location of the XML file.

iDIAcomputing: DbUnit (last edited 2009-07-27 18:25:53 by localhost)