java – Unitils / DBunit和数据库测试

我想尝试使用DBUnit进行单元测试,但我的数据集有问题.

这是我的持久性对象:

@Entity
@Table(name = "personnes")
public class Personne implements Serializable {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Integer pk;

    @Column
    private String name;
}

我的数据集:

<?xml version='1.0' encoding='UTF-8'?>
<dataset>
    <personnes name="toto"  pk="1" />
</dataset>

我的问题是名称列,我收到此错误:

org.dbunit.dataset.NoSuchColumnException: personnes.NAME -  (Non-uppercase input column: name) in ColumnNameToIndexes cache map. Note that the map's column names are NOT case sensitive.

我不明白为什么dbunit搜索列“NAME”而我的列是“name”.

谢谢你的帮助.

解决方法:

我已经打了一段时间了,并继续回到这个问题,但似乎还没有解决方案.

在Unitils 3.4.1中,他们添加了一个新属性org.dbunit.database.IMetadataHandler.implClassName

在我的unitils.properties文件中,我添加了以下行

org.dbunit.database.IMetadataHandler.implClassName=org.dbunit.ext.mysql.MySqlMetadataHandler

是的,我知道,根据Unitils的网站,没有版本3.4.1,但你可以通过Maven获得最新版本.

link to issue report

上一篇:java – 更正了dbunit中的表名消息


下一篇:java – 对Postgresql数组的dbUnit支持