gpt4 book ai didi

DBUnit:如何正确更改属性值?

转载 作者:行者123 更新时间:2023-12-05 03:10:13 25 4
gpt4 key购买 nike

我遇到了 DBUnit (V2.5.3) 的问题,我想将属性 FEATURE_ALLOW_EMPTY_FIELDS 设置为 true,但 DBUnit 忽略了此设置。我设置属性的代码是:

DatabaseConfig dbCfg = null;
try {
dbCfg = dbTester.getConnection().getConfig();
dbCfg.setProperty(DatabaseConfig.FEATURE_ALLOW_EMPTY_FIELDS, Boolean.TRUE);

System.out.println("getCfg -> " + dbTester.getConnection().getConfig().getProperty(DatabaseConfig.FEATURE_ALLOW_EMPTY_FIELDS));
System.out.println("dbCfg -> " + dbCfg.getProperty(DatabaseConfig.FEATURE_ALLOW_EMPTY_FIELDS));

} catch (Exception exc) {
exc.printStackTrace();
}

我认为问题在于新值仅设置到 dbCfg 对象。但似乎 DBUnit 没有使用这个对象,因为上面代码的输出是:

getCfg -> false
dbCfg -> true

看来我太笨了,无法理解如何正确设置 DBUnit 属性......

最佳答案

我注意到里面有一个OperationListener,它是在Connection对象生成后触发的。这是我所做的:我添加了一个 CustomConfigurationOperationListener:

public class CustomConfigurationOperationListener extends DefaultOperationListener implements IOperationListener{
@Override
public void connectionRetrieved(IDatabaseConnection iDatabaseConnection) {
super.connectionRetrieved(iDatabaseConnection);
iDatabaseConnection.getConfig().setProperty(DatabaseConfig.FEATURE_ALLOW_EMPTY_FIELDS, true);
}
}

然后在dbTester上设置:

dbTester.setOperationListener(new CustomConfigurationOperationListener());

这样我们就可以在连接生成之后、数据集创建之前覆盖配置。

关于DBUnit:如何正确更改属性值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40629855/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com