java - 持久化数据的 DBUnit 问题

标签 java spring unit-testing junit4 dbunit

我有一个 baseDAO,其中包含用于基本 CRUD 操作的方法。对于每个操作,我们都在执行 getJpaTemplate.xxx() 操作。 代码在 production 中运行良好,但现在我们必须为 DAO 层编写 UTs,并且我们正在使用 DBUnit.

我看了示例并编写了 DBUnit 类,我观察到读取 操作正常,但是删除、更新创建 操作根本不起作用。
当我们尝试调用 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

有什么建议吗?
提前致谢。
乙脑。

最佳答案

savepoint = connection.setSavepoint("Data inserted in db");

确定保存点何时被提交? 你能把所有相关的 API 代码放在这里吗?

关于java - 持久化数据的 DBUnit 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11681618/

相关文章:

java - 将 HTML 表格导出到 Excel - 使用 jQuery 或 Java

java - 对于 Java 中的 "[,,.\\s]",正则表达式拆分字符串效果不佳

java - 在下拉选项中设置 bean 属性的值 : Spring

spring - 在 Spring 中测试从 Controller 调用 rest Controller

PHPUnit 找不到异常类

C# DispatcherHelper.CheckBeginInvokeOnUI 不会在 UnitTest 上运行

JavaFX TextArea 立即更新

java - 从 JSNI 类创建 GWT jar

java - Spring - 外部依赖中的配置文件

mysql - 如何解决使用 hibernate 5 和 mysql 出现 HHH000346 错误?