`
klyuan
  • 浏览: 184605 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

倒底该怎么写DAO的单元测试?

    博客分类:
  • java
阅读更多
	public void testAddUserInfo() throws Exception{
		userInfo = new UserInfoDTO();
		userInfo.setUserId("001");
		userInfo.setUserName("张三");
		userInfoDao.addUserInfo(userInfo);
		this.assertNotNull(userInfoDao.getUserInfo(userInfo.getUserId()));
		this.assertEquals(userInfo.getUserId(), userInfoDao.getUserInfo(userInfo.getUserId()).getUserId());
		userInfoDao.removeUser(userInfo.getUserId());	}



为了避免脏数据!!!所以要把新插入的数据用removeUser删除掉!!!

当然,如果使用Spring的那个带有事务的基类。在TearDown时,会回滚所有事务。removeUser这个方法可以无需要。不会产生因单元测试的脏数据

困惑多一:
新增一个用户后,需要调用一个方法getUserInfo来判断数据是否已经插入!!!

根据单元测试的原则!!!
1.测试方法不应该有先后顺序!!
2.测试方法不应该依赖于另一个方法!
你上面的例子,我们需要测试的仅仅是addUserInfo这个方法!!
假设addUserInfo方法实际上是没有任何问题的,如果getUserInfo方法不正常。的确影响了这个测试结果!!!


大家平时是怎么写dao测试方法的?
分享到:
评论
5 楼 klyuan 2007-05-17  
daquan198163 写道
在setup里面来addUserInfo,准备一条数据

BTW:spring提供一个测试基类,可以自动回滚,防止测试数据污染数据库


我知道spring有这个基类!

我是说,各个测试方法之间有依赖
4 楼 klyuan 2007-05-17  
抛出异常的爱 写道
把事务层的东西写在dao中合适么?

脏数据这东西应该不是dao应该关心的事吧。


我说的意思是,测试时写到数据库的数据应该在测试完后删除掉。
3 楼 hgq0011 2007-05-17  
daquan198163 写道
在setup里面来addUserInfo,准备一条数据

BTW:spring提供一个测试基类,可以自动回滚,防止测试数据污染数据库

ROR中有不同的数据库,比如测试时用测试的数据库。
我们现在的测试也就是这样做的。
2 楼 daquan198163 2007-05-17  
在setup里面来addUserInfo,准备一条数据

BTW:spring提供一个测试基类,可以自动回滚,防止测试数据污染数据库
1 楼 抛出异常的爱 2007-05-17  
把事务层的东西写在dao中合适么?

脏数据这东西应该不是dao应该关心的事吧。

相关推荐

    SpringBoot 多模块Dao层单元测试

    本篇文章将重点讲解如何在IDEA环境下,针对Spring多模块项目中的Dao层进行单元测试。 首先,我们要理解什么是单元测试。单元测试是一种软件测试方法,它针对程序中的最小可测试单元,如方法或类,进行独立验证。在...

    Android-KBUnitTest是一款轻量级DAO单元测试框架

    KBUnitTest是一款轻量级DAO单元测试框架,开发者可以通过此框架,在Android Studio运行SQLiteDatabase、SharedPreference单元测试。KBUnitTest支持原生SQLiteDatabase操作及GreenDAO、Afinal、XUtils、DbFlow第三方...

    自动测试所有dao单元测试

    NULL 博文链接:https://zhuliang1984723.iteye.com/blog/2260856

    JDBC相关单元测试及通用的Dao

    jdbc详细测试用例,包括connection ,statement,preparedstatement,resultset,BeanUtils,DBUtils,数据库连接池dbcp,cp03的单元测试,及dao层的统一封装,适合项目开发人员学习和项目中使用。

    使用junit测试ssh中的dao

    标题“使用junit测试ssh中的dao”涉及到的是Java开发中的单元测试技术,特别是针对SSH(Struts2、Spring、Hibernate)框架中的数据访问对象(DAO)进行测试。SSH是Java Web开发中常用的三大开源框架,它们协同工作以...

    使用JUnit进行单元测试PPT

    **为什么要进行单元测试?** 1. **编译正确不等于运行正确**:编译阶段的错误并不总能在编译时被发现,需要运行时才能暴露。 2. **修改代码可能导致错误**:添加新功能或修改现有代码可能会引入新的bug。 3. **集成...

    DAO单元测试

    今天我将展示一下我是如何在实际中对dao进行单元测试的首先我们来确认一下dao需要什么样的环境,我的dao是用Spring+hibernate来构建的,而对应的数据源是oracle9。所以要进行dao的测试我需要从Spring的连接oracle的...

    对DAO编写单元测试[1]

    编写对DAO编写单元测试[1]软件测试单元测试作为保证软件质量及重构的基础,早已获得广大开发人员的认可。单元测试是一种细粒度的测试,越来越多的开发人员在提交功能模块时也同时提交相应的单元测试。对于大多数开发...

    数据库操作的单元测试

    传统的单元测试通常不涉及外部资源,但当测试的对象直接与数据库交互时(例如DAO层),就需要确保数据库处于一个已知且可预测的状态。DBunit允许开发者在测试前将数据库的状态设定为一个特定的状态,并在测试结束后...

    mockito单元测试使用

    记得以前面试的时候,面试官问我,平常开发过程中自己会不会测试?我回答当然会呀,自己写的代码怎么不测呢。现在想想我好像误会他的意思了,他应该是想问我关于单元测试,集成测试以及背后相关的知识,然而当时说到...

    Struts2+Spring+hibernate中对action的单元测试环境搭建[总结].pdf

    Struts2+Spring+Hibernate 中的Action单元测试环境搭建 在软件开发中,单元测试是一种非常重要的测试方法,可以帮助我们确保代码的可靠性和稳定性。在 Struts2+Spring+Hibernate 框架中,对 Action 的单元测试环境...

    SSH单元测试代码整理

    这个压缩包中的内容主要涉及SSH框架下进行单元测试的代码示例。通过`JdbcHibernateSupport.java`和`UnitTestTools.java`这两个文件,我们可以深入理解如何在SSH环境中编写和使用单元测试。 首先,`...

    DBUnit 进行单元测试

    DBUnit 是一个强大的Java库,专门用于数据库的单元测试。它与JUnit紧密集成,使得开发者能够在执行单元测试时,能够方便地控制和验证数据库的状态。DBUnit 的核心理念是通过导入和导出数据来帮助测试数据库驱动的...

    hibernate 单元测试批处理代码

    在IT行业中,Hibernate是一个强大的Java持久化框架,它简化了与关系型数据库的交互,而单元测试则是确保代码质量的重要工具。在这个“hibernate 单元测试批处理代码”项目中,我们将深入探讨如何使用Hibernate进行...

    spring MVC junit 单元测试(controller)

    在Spring MVC框架中,单元测试是确保代码质量的重要步骤,特别是在控制器层(Controller)。这篇博客主要探讨了如何使用JUnit进行Spring MVC Controller的单元测试。在实际开发中,单元测试可以帮助我们尽早发现潜在...

    junit测试spring,hibernate的dao层代码

    在软件开发过程中,单元测试是确保代码质量的重要环节。`JUnit` 是Java编程语言中最流行的单元测试框架,它允许开发者编写可重复运行的测试用例,以验证代码的正确性。`Spring` 和 `Hibernate` 分别是Java企业级应用...

    主题:在Spring中结合Dbunit对Dao进行集成单元测试

    在Spring框架中,进行Dao层的集成单元测试时,常常会结合Dbunit工具来实现数据库相关的测试。Dbunit是一款强大的Java库,它扩展了JUnit,为数据库提供了结构化数据的导入和导出,使得测试更加方便和可靠。下面将详细...

    07. Spring Boot单元测试

    在Spring Boot框架中,单元测试是一项至关重要的任务,它能够帮助开发者确保代码的正确性和可靠性。Spring Boot提供了方便的工具和库,使得编写和执行单元测试变得简单高效。本章节我们将深入探讨Spring Boot中的...

    spring3学习笔记(2)-集成ibatis3进行单元测试

    在本篇“Spring3学习笔记(2)-集成ibatis3进行单元测试”中,我们将深入探讨如何在Spring3框架中整合Ibatis3,并利用它来进行单元测试。这个主题对于理解如何在实际项目中实现数据访问层的测试具有重要意义。在现代...

Global site tag (gtag.js) - Google Analytics