`
Godlikeme
  • 浏览: 165169 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Spring 数据库依赖 单元测试的一点想法

阅读更多
虽然我们会尽量保证测试的单纯性,但是很多单元测试是测试数据依赖的,特别是数据库,如何保证测试的自动性,可重复性、独立性、专业性等特性,是一个比较棘手的问题。
一点想法:
  • 每个unit_test自行准备数据,在单元测试中进行数据的维护,设置rollback,保持测试的独立性。
  • 测试数据统一准备,单元测试前导入测试数据库,设置rollback
  • 这里有两种选择。
    1.可以应用到整个单元测试类的,在setup中添加,也可以在先有数据基础上作修改。(因为是rollback方式,不会对其他测试产生影响)
    2.只针对具体testMethod的,在test中做
  • 两种方式结合,统一数据准备应该能满足多数情况,特殊情况的自行准备测试数据。


这里面有这样一些问题:
  • 单元测试自行准备数据,刚开始的时候比较方便,单时间长了会有大量的重复数据,数据杂乱。
  • 统一准备数据,测试数据需要统一维护,以避免不同人修改,造成不必要的错误,但这样测试数据与测试逻辑分离,修改数据的人可能并不了解修改可能造成预期测试结果的改变,产生错误不可避免。如果大家分人维护,混乱不可避免,数据之间是有相关性的。
  • 两种方式结合,如何结合也是一个问题,刚开始的测试数据自行维护,待稳定后统一维护,给人感觉好一点,但不知道会有什么其他的问题。




  • 分享到:
    评论
    3 楼 Godlikeme 2006-10-24  
    没人给点拨点拨...
    2 楼 Godlikeme 2006-10-23  
    当然有看,呵呵,这不是类的使用问题,是测试方式的问题。
    1 楼 restart 2006-10-23  
    楼主可以看一下org.springframework.test包下的类.

    相关推荐

      spring boot

      它们是一系列精心选择的Maven或Gradle依赖集合,例如`spring-boot-starter-web`用于构建Web应用,`spring-boot-starter-data-jpa`用于数据库操作,`spring-boot-starter-test`则提供了测试支持。这些起步依赖避免了...

      spring-boot-cli-1.1.9.RELEASE-bin.zip

      比如,如果你想在Spring应用中使用数据库,只需添加相应的"spring-boot-starter-data-jpa"依赖,它会自动包含所有必要的JPA库。 8. **自动配置(Auto Configuration)**: Spring Boot的自动配置根据你在类路径中的...

      Spring会议:想法上传到github测试

      5. **Spring Data**:这个模块简化了数据库访问,支持JPA、Hibernate等ORM框架,同时也支持NoSQL数据库。 6. **Spring Cloud**:对于微服务架构,Spring Cloud提供了服务发现、配置中心、负载均衡、熔断机制等工具...

      博客系统(struts+hibernate+spring).zip

      博客系统是一种基于Web的应用程序,通常用于发布、管理和分享个人或组织的文章、想法和见解。在本案例中,我们讨论的是一个使用了Struts、Hibernate和Spring这三大核心技术构建的博客系统。这三大框架是Java Web开发...

      database-rider:数据库测试变得容易!

      因此,您可以在JUnit测试中使用数据库! 该项目旨在使更接近您的JUnit测试,因此数据库测试将变得轻而易举! 观看以了解想法。 许多此类工作基于并且着重于简单性(一个依赖项-dbunit)。 目录 数据集执行器...

      基于ssm的二次元周边产品分期平台源码数据库.zip

      标题中的“基于ssm的二次元周边产品分期平台源码数据库”表明这是一个使用Spring、SpringMVC和MyBatis(SSM)框架开发的项目,主要针对二次元文化的周边商品,提供分期付款服务的在线平台。这个项目可能包含了前端...

      自己写的简单sping

      8. **单元测试**:Spring的Test模块提供了方便的测试支持,包括Mock对象和ApplicationContext的加载,便于进行单元测试和集成测试。 至于模仿Struts2和Hibernate的部分,可能涉及到: - **Action和Controller**:...

      基于Android的学生交流“树洞”信箱APP源码数据库.zip

      它集成了Spring框架的核心特性,如依赖注入、数据访问、事务管理等,并提供了自动配置和起步依赖的功能,让开发者能快速构建服务。 数据库方面,未明确指出具体使用的数据库系统,但常见的选择可能是SQLite,这是...

      springboot客户信息管理系统(vue)源码数据库演示.zip

      【SpringBoot】是Spring框架的一个简化版,它通过内嵌的Tomcat服务器和自动配置功能,使得开发Java Web应用变得更加简洁和快速。SpringBoot的核心特性包括:自动配置、起步依赖、命令行接口(CLI)以及Actuator等,...

      JavaEE源码基于BS架构微博源码数据库sql文档

      Spring的核心特性包括依赖注入(DI)、面向切面编程(AOP)等,这些特性有助于开发者构建松耦合、易于测试的应用程序。 #### Spring MVC框架 Spring MVC是Spring框架的一个模块,专门用于Web应用开发。它提供了一种...

      1023688406564960ssm基于Web的个人博客qjgel.zip

      通常,这样的项目会包含前端页面、后端服务以及数据库交互等组成部分,旨在为用户提供一个展示自我、分享想法的平台。 【标签】:由于没有提供具体的标签,我们可以推测该项目可能涉及到的技术标签包括:Spring、...

      基于SSM的大学生创客平台.zip

      通常,这样的项目会包含前端界面、后端服务、数据库配置以及与微信小程序的集成,以便大学生能够发起和参与创新项目,交流想法,甚至寻求合作与投资。 【标签】中的"毕业设计"表明这是一个学生在毕业前完成的项目,...

      微博的系统

      8. **测试与调试**:JUnit和Mockito等工具可能被用于单元测试和集成测试,确保代码质量和系统的稳定性。 9. **部署与运维**:Docker容器化技术可能用于部署,便于环境隔离和快速部署;Nginx作为反向代理和负载均衡...

      Java程序员上班那点事儿.

      测试是保证软件质量的重要环节,JUnit是Java中的单元测试框架,而Selenium、Appium等工具用于进行Web和移动应用的自动化测试。 在项目管理方面,了解敏捷开发理念,如Scrum或Kanban方法,可以帮助团队高效协作。...

      基于java的个人博客系统

      11. **测试与调试**:单元测试、集成测试和压力测试是保证系统稳定性和功能完整性的重要环节,JUnit和Mockito等工具可以辅助进行测试。 12. **文档编写**:如提供的`.doc`和`.pptx`文件,可能是系统设计文档、用户...

      springboot121编程训练系统设计与实现.zip

      【标题】"springboot121编程训练系统设计与实现.zip"揭示了这个项目的核心是基于Spring Boot技术构建的一个训练系统。Spring Boot是Java生态系统中的一个流行框架,它简化了创建独立的、生产级别的基于Spring的应用...

      java云笔记

      10. **测试框架**:JUnit、Mockito等测试工具用于编写单元测试和集成测试,确保代码质量和功能的稳定性。 通过以上技术的综合运用,Java云笔记实现了高效、可靠的笔记存储和同步,为用户提供了无缝的跨设备体验。...

      java语言编写的博客系统

      9. **测试与调试**:单元测试(JUnit)、集成测试(Spring Boot Test)和持续集成工具(Jenkins)确保代码的质量和稳定性。 10. **部署与运维**:应用通常会被部署到服务器,如Tomcat或Jetty。容器管理、负载均衡、...

      基于Java实现的众筹系统

      2. **Spring框架**:Spring是Java后端开发的核心框架,提供依赖注入、AOP(面向切面编程)等服务,简化了应用程序的开发和测试。在众筹系统中,Spring MVC用于处理HTTP请求,Spring Boot则用于快速搭建应用。 3. **...

    Global site tag (gtag.js) - Google Analytics