spring - DBUNIT 和 Spring.. 无法加载数据集文件

标签 spring junit dbunit spring-test

我正在尝试测试我的 Dao 层。所以我创建了一个嵌入式数据库。在我的 junit 测试中,我正在努力加载数据:

所以我的创建脚本是:

CREATE SCHEMA test_schema AUTHORIZATION DBA;

创建表 test_schema.tableOne (....)

创建数据库后..我尝试使用

加载数据
@Test
public void testFind() throws Exception {

    IDataSet dataSet = new FlatXmlDataSetBuilder().build(new File(
            "./src/test/resources/sampleData.xml"
            ));
            IDatabaseConnection dbConn = new   DatabaseDataSourceConnection(dataSource);
            DatabaseOperation.INSERT.execute(dbConn, dataSet);  


}

我的数据集文件看起来:

<?xml version="1.0" encoding="UTF-8"?>
  <dataset>
<tableOne state_id="0" previous_state_id="0" player_uid="222222" /> 
  </dataset>

在尝试执行上述操作后,我得到用户缺少权限或找不到对象 TABLEONE...

(顺便说一句,我的数据库是使用 spring 3 嵌入式 hsql 创建的)

有什么想法吗?

最佳答案

好的,已经解决了..

IDatabaseConnection dbConn = new DatabaseDataSourceConnection(dataSource, "TEST_SCHEMA");
dbConn.getConfig().setProperty(DatabaseConfig.FEATURE_QUALIFIED_TABLE_NAMES, true);

显然,当我创建连接时,我必须指定模式名称,但也要大写!

然后可以如下设置数据集

<test_schema.tableone..... etc

关于spring - DBUNIT 和 Spring.. 无法加载数据集文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11560252/

相关文章:

spring - 在每个请求中设置 cookie - SPRING

java - 为 Spring JPA 存储库方法配置切入点

java - Actionbar Overflow 中的单元测试菜单项

java - DBunit 中的 IDataSet 操作

java - DbUnit 的 XML 文件中的变量值

unit-testing - DAO 单元测试

javascript - spring 如何在不从 ${model} 渲染的情况下获取 HTML 标签

java - 一对多关系空指针异常

unit-testing - 单元测试(模拟)数据库,如何使用模拟验证数据库方法?

java - junit 数据驱动测试指定何时提供新数据