不知道大家做Junit测试时对于数据库的操作都是怎么进行验证的。我说下我们项目里遇到的一些问题。 
1、对于查询功能的Dao函数 
  Dao返回值:返回List,如果查询到数据时,List里面包含多个JavaBean。JavaBean里的属性的格式包含基本类型、数组类型、List型、Map型、其他JavaBean。 
  正常的验证代码是: 
  List list = Dao.Search(); 
  assertEquals(1, list.size()); 
  XXXVO vo = list.get(index); 
  assertEquals("0001", vo.getNo()); 
  assertEquals("Name", vo.getName()); 
  问题:需要验证的JavaBean里的属性太多,太复杂。要写很多assert代码。数据写死在测试代码里了,更换一组测试数据时需要从新写Junit代码。 
  期望的解决方法:预期的数据通过一种格式保存在XML文件中,根据XML里的数据对返回的List进行验证。 
                  例:assertObject("result_01.xml", list); 
                注:所有返回的JavaBean都没有实现Equals方法。所以不能整个对象比较。 
2、更新和插入动作的Dao函数 
  正常的验证方式是:执行Dao的方法后,执行一段查询,将Dao插入的数据查询出来然后逐一验证。 
  问题:需要写的代码太多,不好维护。 
  期望的解决方法:将期望Dao执行后的数据表状态,预先写到一个XML文件中。Dao执行之后,根据XML文件的内容与数据库中表的内容进行比较。 
  新的问题:一些表中的字段(主要是主键)是通过数据库中的SEQUENCES对象的值插入的(自动增长字段),在Dao执行之前无法预期其值。因为是多人进行测试, 
            所以SEQUENCES对象是多人在使用,所以无法预期SEQUENCES的使用状态。 不知道我描述的是否清楚,请高手来帮忙提出一些解决方案。最好是有实现的方案。也可以说说你们做项目时的测试方法。谢谢!