【发布时间】:2012-07-27 04:49:26
【问题描述】:
我有一个baseDAO,其中包含基本CRUD 操作的方法。对于每个操作,我们都在进行getJpaTemplate.xxx() 操作。
代码在生产中运行良好,但现在我们必须为DAO 层编写UTs,我们正在使用DBUnit。
我看到了示例并编写了 DBUnit 类,我观察到 read 操作工作正常,但 删除、更新 和 Create 操作根本不工作。
当我们尝试调用DAO.save(object) 时,它不会抛出任何异常,它会进入下一行,但是当我尝试打开表格并查看值时,新行没有插入 事务失败也没有抛出任何异常。
我怀疑连接可能有问题。
作为参考,我附上了getConnection() 方法。
protected IDatabaseConnection getConnection() throws Exception {
Connection con = dataSource.getConnection();
DatabaseConnection connection = new DatabaseConnection(con);
DatabaseConfig config = connection.getConfig();
config.setProperty(DatabaseConfig.PROPERTY_DATATYPE_FACTORY,new oracleDataTypeFactory());
return connection;
}
我们在setup () 中调用了另一种方法,用于填充XML 文件中的数据,该方法工作正常。仅供参考,我在这里添加代码。
protected void insertData (String xmlDataFilePath) {
IDatabaseConnection dbConnection= getConnection();
TransactionOperation.CLEAN_INSERT.execute(dbConnection,getDataSet(xmlDataFilePath));
connection = jPATransactionManager.getDataSource().getConnection();
connection.setAutoCommit(false);
savepoint = connection.setSavepoint("Data inserted in db");
dbConnection.close();
}
如果没有看到 在数据库中插入的新行,我不确定如何进一步进行。
因为我尝试过这样做
getJpaTemplate().save(object);
getJpaTemplate().load(ClassName.class, object's id);
返回我 null 并且在 db 表中也没有 entry。
有什么建议吗?
提前致谢。
乙肝。
【问题讨论】:
标签: java spring unit-testing junit4 dbunit