文書の過去の版を表示しています。
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(); } } }
ここで、テストデータとしてtestdata.xmlを使用しているが、サンプルは次節で紹介する。