`
tonybest
  • 浏览: 9803 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

Spring-test 单元测试数据不自动回滚的解决方案

 
阅读更多

       在使用JUnit做单元测试时,为了使测试数据不对数据库造成污染,故选取了spring-test进行单元测试,但在进行dao层的测试时,发现save方法无法进行数据的自动回滚。

       逐一进行检查分析,事务也开启了,并使用注解方式标记@RollBack(true),在控制台中也打出了事务回滚的信息,但仍然不能自动回滚。

       后来感觉是数据库的原因,我的数据库使用的是MySql,这就存在数据表的类型是否支持事务情况。逐查阅MySql相关文档,发现,InnoDB类型的表是支持事务的,而MyISAM是不支持事务的,立刻查看数据表类型,果然为MyISAM,改为InnoDB后,重新进行测试,问题得到解决。

0
0
分享到:
评论

相关推荐

    spring-test-3.2.0.RELEASE.jar

    4. **测试数据源:** `@Sql`注解可以用来在测试前后执行SQL脚本,用于初始化或清理数据库状态,确保测试的隔离性。同时,`@Transactional`注解可以开启事务,测试结束后自动回滚,避免对数据库造成影响。 5. **...

    Spring-test做数据库操作的单元测试2-跨库访问

    在Spring框架中,Spring-test模块提供了强大的支持来进行单元测试和集成测试。这篇博客"Spring-test做数据库操作的单元测试2-跨库访问"探讨了如何利用Spring-test进行数据库操作的测试,尤其是涉及到跨库访问的场景...

    spring-test-3.2.9.zip

    Spring Test可以自动管理测试的事务,`@Transactional`注解可用于确保每个测试方法都在一个新的事务中运行,测试结束后,事务会自动回滚,保持数据库的一致性。 8. **异步测试** 对于处理异步任务的测试,Spring...

    spring-test项目实例

    spring-test项目实例 1.使用spring-test与junit进行单元测试。 2.包含回滚动作,避免测试数据污染数据库。

    利用JUnit和Spring-test对SpringJDBC组件DAO层测试

    如果DAO方法涉及数据库操作,可以考虑使用Spring的`@Transactional`注解,确保测试后数据库状态回滚,避免影响其他测试。 对于SpringJDBC中的Druid数据源,它是一个高效、强大的连接池实现。在测试中,我们可以配置...

    spring-控制事物回滚

    在单元测试中,可以使用`@Transactional`注解来开启事务,并在测试结束后自动回滚,确保测试环境的清洁。 8. **Spring Boot集成**: - 在Spring Boot应用中,事务管理通常是自动配置的。通过`spring-boot-starter-...

    spring整合单元测试Junit开发包

    8. **AOP代理测试**: Spring Test模块提供了`@Rollback`和`@DirtiesContext`注解,前者用于在测试后自动回滚事务,后者标记测试可能污染了上下文,需要在下次测试前重新加载。 9. **AssertJ和Hamcrest**: Spring ...

    spring mvc的简单单元测试

    Spring Test提供了`@Transactional`注解来自动回滚事务,避免测试之间的影响。此外,可以使用`@Before`和`@After`方法来自定义测试前后的准备和清理工作。 总之,通过正确使用JUnit、Mockito、Spring Test以及...

    Spring-API+中文帮助文档.rar

    声明式事务管理更为便捷,只需在配置文件或注解中定义事务规则,Spring会自动进行事务的提交或回滚。 4. **Spring MVC**:作为Spring的一部分,Spring MVC提供了模型-视图-控制器的架构模式,用于构建Web应用程序。...

    spring mvc jpa单元测试例子

    我们可以在`application-test.properties`中配置H2,并在测试类中使用`@Sql`注解来执行SQL脚本,初始化测试数据。 本例子中的项目使用MyEclipse创建,这是一款集成开发环境,支持Maven构建。这意味着项目结构遵循...

    官方原版源码spring-framework-4.3.23.RELEASE.zip

    5. **测试支持**:Spring提供强大的单元测试和集成测试框架,如`@SpringBootTest`和`@WebMvcTest`注解,简化了测试编写。 6. **事务管理**:Spring的声明式事务管理可以自动处理事务的开始、提交、回滚,减轻了...

    spring-testing-源码.rar

    `@DataMongoTest`、`@DataJpaTest`等注解专为数据库测试设计,它们会配置相应的数据源,并能自动回滚事务,确保测试数据的隔离性。 6. **Mocking与Stubbing** Spring Testing集成了Mockito库,允许我们创建mock...

    org.springframework.test-3.0.2.RELEASE.jar

    在Spring的众多模块中,`org.springframework.test`扮演着至关重要的角色,它是Spring框架用于单元测试和集成测试的核心组件。本文将深入探讨`org.springframework.test-3.0.2.RELEASE.jar`这一版本中的关键概念和...

    spring-boot-3.1.8.zip

    10. **测试支持**:SpringBoot 提供了测试支持,包括 @SpringBootTest 注解,使得单元测试和集成测试变得简单。 11. **版本更新**:从 3.1.8 版本来看,这个版本相比早期版本可能已经进行了多项改进,包括修复了...

    springBootTest.zip

    可能涉及的内容包括Spring Boot的集成测试、单元测试以及使用Spring Test和JUnit等工具进行测试的方法。 标签 "源码" 和 "工具" 提醒我们,这个压缩包可能包含了一些示例代码和用于测试的工具。源码分析是理解任何...

    022-preload-database-execute-sql-spring-testing

    在Spring框架中,进行数据库相关的测试是开发过程中不可或缺的一环。标题"022-preload-database-execute-sql-spring-testing"暗示了这个压缩包可能包含了一个示例项目,专注于如何在Spring测试环境中预加载数据库并...

    spring-framework-4.2.3.RELEASE

    在测试方面,Spring Test模块为单元测试和集成测试提供了便利。`@RunWith(SpringJUnit4ClassRunner.class)`和`@ContextConfiguration`等注解可以快速启动Spring容器进行测试,而`@MockBean`、`@SpyBean`等则有助于...

    spring-transaction-demo.rar_DEMO_springboot_wash1vw

    可以通过`spring.datasource`配置数据源,`spring.jpa.hibernate.ddl-auto`设置数据库自动建表策略,以及`spring.transaction.rollback-on-commit-failure`控制事务回滚行为。 2. **实体类(Entity)**:这些是业务...

    bp-support-spring-tx-test:支持使用Spring Transaction进行测试

    4. **数据准备与还原**:可能有专门的数据初始化和还原机制,确保测试数据的准确性和一致性。 5. **错误处理**:在测试失败时,可能会有更详细的事务错误报告,帮助开发者快速定位问题。 项目名为"bp-support-...

    Spring+hibernate 单元测试

    它包含了应用程序上下文(ApplicationContext)、测试数据等信息。 - **TestContextManager**:作为 Spring TestContext 框架的主入口,管理着一个 TestContext 实例,并在适当的执行点上触发 TestExecutionListener...

Global site tag (gtag.js) - Google Analytics