虽然我们会尽量保证测试的单纯性,但是很多单元测试是测试数据依赖的,特别是数据库,如何保证测试的自动性,可重复性、独立性、专业性等特性,是一个比较棘手的问题。
一点想法:
- 每个unit_test自行准备数据,在单元测试中进行数据的维护,设置rollback,保持测试的独立性。
- 测试数据统一准备,单元测试前导入测试数据库,设置rollback
这里有两种选择。
1.可以应用到整个单元测试类的,在setup中添加,也可以在先有数据基础上作修改。(因为是rollback方式,不会对其他测试产生影响)
2.只针对具体testMethod的,在test中做
- 两种方式结合,统一数据准备应该能满足多数情况,特殊情况的自行准备测试数据。
这里面有这样一些问题:
单元测试自行准备数据,刚开始的时候比较方便,单时间长了会有大量的重复数据,数据杂乱。
统一准备数据,测试数据需要统一维护,以避免不同人修改,造成不必要的错误,但这样测试数据与测试逻辑分离,修改数据的人可能并不了解修改可能造成预期测试结果的改变,产生错误不可避免。如果大家分人维护,混乱不可避免,数据之间是有相关性的。
两种方式结合,如何结合也是一个问题,刚开始的测试数据自行维护,待稳定后统一维护,给人感觉好一点,但不知道会有什么其他的问题。
分享到:
- 2006-10-23 16:57
- 浏览 3321
- 评论(3)
- 论坛回复 / 浏览 (3 / 4425)
- 查看更多
相关推荐
它们是一系列精心选择的Maven或Gradle依赖集合,例如`spring-boot-starter-web`用于构建Web应用,`spring-boot-starter-data-jpa`用于数据库操作,`spring-boot-starter-test`则提供了测试支持。这些起步依赖避免了...
比如,如果你想在Spring应用中使用数据库,只需添加相应的"spring-boot-starter-data-jpa"依赖,它会自动包含所有必要的JPA库。 8. **自动配置(Auto Configuration)**: Spring Boot的自动配置根据你在类路径中的...
5. **Spring Data**:这个模块简化了数据库访问,支持JPA、Hibernate等ORM框架,同时也支持NoSQL数据库。 6. **Spring Cloud**:对于微服务架构,Spring Cloud提供了服务发现、配置中心、负载均衡、熔断机制等工具...
博客系统是一种基于Web的应用程序,通常用于发布、管理和分享个人或组织的文章、想法和见解。在本案例中,我们讨论的是一个使用了Struts、Hibernate和Spring这三大核心技术构建的博客系统。这三大框架是Java Web开发...
因此,您可以在JUnit测试中使用数据库! 该项目旨在使更接近您的JUnit测试,因此数据库测试将变得轻而易举! 观看以了解想法。 许多此类工作基于并且着重于简单性(一个依赖项-dbunit)。 目录 数据集执行器...
标题中的“基于ssm的二次元周边产品分期平台源码数据库”表明这是一个使用Spring、SpringMVC和MyBatis(SSM)框架开发的项目,主要针对二次元文化的周边商品,提供分期付款服务的在线平台。这个项目可能包含了前端...
8. **单元测试**:Spring的Test模块提供了方便的测试支持,包括Mock对象和ApplicationContext的加载,便于进行单元测试和集成测试。 至于模仿Struts2和Hibernate的部分,可能涉及到: - **Action和Controller**:...
它集成了Spring框架的核心特性,如依赖注入、数据访问、事务管理等,并提供了自动配置和起步依赖的功能,让开发者能快速构建服务。 数据库方面,未明确指出具体使用的数据库系统,但常见的选择可能是SQLite,这是...
【SpringBoot】是Spring框架的一个简化版,它通过内嵌的Tomcat服务器和自动配置功能,使得开发Java Web应用变得更加简洁和快速。SpringBoot的核心特性包括:自动配置、起步依赖、命令行接口(CLI)以及Actuator等,...
Spring的核心特性包括依赖注入(DI)、面向切面编程(AOP)等,这些特性有助于开发者构建松耦合、易于测试的应用程序。 #### Spring MVC框架 Spring MVC是Spring框架的一个模块,专门用于Web应用开发。它提供了一种...
通常,这样的项目会包含前端页面、后端服务以及数据库交互等组成部分,旨在为用户提供一个展示自我、分享想法的平台。 【标签】:由于没有提供具体的标签,我们可以推测该项目可能涉及到的技术标签包括:Spring、...
通常,这样的项目会包含前端界面、后端服务、数据库配置以及与微信小程序的集成,以便大学生能够发起和参与创新项目,交流想法,甚至寻求合作与投资。 【标签】中的"毕业设计"表明这是一个学生在毕业前完成的项目,...
8. **测试与调试**:JUnit和Mockito等工具可能被用于单元测试和集成测试,确保代码质量和系统的稳定性。 9. **部署与运维**:Docker容器化技术可能用于部署,便于环境隔离和快速部署;Nginx作为反向代理和负载均衡...
测试是保证软件质量的重要环节,JUnit是Java中的单元测试框架,而Selenium、Appium等工具用于进行Web和移动应用的自动化测试。 在项目管理方面,了解敏捷开发理念,如Scrum或Kanban方法,可以帮助团队高效协作。...
11. **测试与调试**:单元测试、集成测试和压力测试是保证系统稳定性和功能完整性的重要环节,JUnit和Mockito等工具可以辅助进行测试。 12. **文档编写**:如提供的`.doc`和`.pptx`文件,可能是系统设计文档、用户...
【标题】"springboot121编程训练系统设计与实现.zip"揭示了这个项目的核心是基于Spring Boot技术构建的一个训练系统。Spring Boot是Java生态系统中的一个流行框架,它简化了创建独立的、生产级别的基于Spring的应用...
10. **测试框架**:JUnit、Mockito等测试工具用于编写单元测试和集成测试,确保代码质量和功能的稳定性。 通过以上技术的综合运用,Java云笔记实现了高效、可靠的笔记存储和同步,为用户提供了无缝的跨设备体验。...
9. **测试与调试**:单元测试(JUnit)、集成测试(Spring Boot Test)和持续集成工具(Jenkins)确保代码的质量和稳定性。 10. **部署与运维**:应用通常会被部署到服务器,如Tomcat或Jetty。容器管理、负载均衡、...
2. **Spring框架**:Spring是Java后端开发的核心框架,提供依赖注入、AOP(面向切面编程)等服务,简化了应用程序的开发和测试。在众筹系统中,Spring MVC用于处理HTTP请求,Spring Boot则用于快速搭建应用。 3. **...