文書の過去の版を表示しています。


Backup table data

あるテーブルに対して、transactionを行うクラスをテストする際、テーブルデータをバックアップする方法を紹介する。\ ここで、紹介するテストクラスは、Integration with TestNGで紹介した親クラスを継承していることを前提する。

以下に、ソースの一部分を示す

public class TestSomeTableTransactionService extends AbstractCustomTestCase {
    //table backup file
    private File backupFile;
 
    /* (non-Javadoc)
     * @see parent.AbstractCustomTestCase#prepareSpecific()
     */
    @Override
    protected void prepareSpecific() throws Exception {
        IDatabaseConnection _connection = null;
        try {
            _connection = databaseTester.getConnection();
            //prepare backup file
            QueryDataSet _partialDataSet = new QueryDataSet(_connection);
            _partialDataSet.addTable("your table name here");
            backupFile = File.createTempFile("foo", "xml");
            //write table data to file
            FlatXmlDataSet.write(_partialDataSet, new FileOutputStream(backupFile));
 
            //prepare test data
            FlatXmlDataSetBuilder _builder = new FlatXmlDataSetBuilder();
            InputStream _is = getClass().getResourceAsStream("testdata.xml");
            FlatXmlDataSet _dataSet = _builder.build(_is);
            //clean insert
            DatabaseOperation.CLEAN_INSERT.execute(_connection, _dataSet);
        } finally {
            if (_connection != null) _connection.close();
        }
    }
}

QR Code
QR Code study:java:dbunit:testdata (generated for current page)