2007-12-12

今天工作遇上的问题20071212

关键字: 单元测试
[b]奇怪,今天调试的时候,发现页面上显示的全是做单元测试的数据,但是调试的时候确确实实是看到了在取数据库中的数据呀。查下ArayList里的主键值全部是上千的数字,吓我一跳。
真不知道是为什么会取到单元测试里的数据,而数据库里的数据却没有读到呢?

List<User> users = new ArrayList<User>();
fromDB = getUserService().findUser(user_id);
for(int i=0;i<fromDB.size();i++) {
  User user = new User();
  user.setLoginName(((User)fromDB.get(i)).getLoginName());
  user.setLoginPwd(((User)fromDB.get(i)).getLoginPwd());
}

这些是我用于测试的数据。
问了一下我们的老大,说在做测试的时候生成的数据没有做测试操作,我晕,那是不是每一个单元测试类都要去检查呢。
哎,怎么在做单元测试的时候不想全点呢,现在代码可是很多的呀。

没法,只能一个个检查了

但是我还是想问一下,就算是这样,那页面也应该显示测试的数据和数据库中的记录才对的呀,而且做查找时也确实看到查到了数据库中的值,但是怎么不会显示呢?

不知道有哪位同仁有遇过类似的问题,请拿出来互相交流一下
评论
lean1252 2008-01-23   回复
造成这种问题的原因也有可能与数据库的引擎有关,像mysql的引擎innodb支持事务,而MyIsam却不支持
lean1252 2007-12-13   回复
是的,我使用了spring 的测试框架。
但是我有个疑问,spring的测试框架会帮我管理事务,就不会去读数据库中的值吗
jzx19770812 2007-12-13   回复
是不是你用了spring的测试框架,测试结束后自动回滚了?
spring的测试框架会帮你管理事务,在测试开始前开启事务,执行完毕自动回滚,不会污染你的数据库
发表评论

提醒: 该博客已发表在公共论坛,博客所有留言会成为论坛回贴,留言请注意遵守论坛发贴规则

您还没有登录,请登录后发表评论

lean1252
搜索本博客
存档
最新评论