使用事务需要继承AbstractTransactionalJUnit4SpringContextTests
@Rollback事务自动回滚
import java.util.List; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.annotation.Rollback; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.AbstractTransactionalJUnit4SpringContextTests; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import com.urthink.core.authority.entity.User; import com.urthink.core.base.JdbcTemplateDao; @RunWith(SpringJUnit4ClassRunner.class) // 整合 @Rollback // 事务自动回滚 @ContextConfiguration(locations = {"classpath:spring-context.xml"}) // 加载配置 public class JdbcTemplateTest extends AbstractTransactionalJUnit4SpringContextTests { @Autowired private JdbcTemplateDao jdbcTemplateDao; @Test public void test() { List<User> users = jdbcTemplateDao.queryList(); System.out.println(users.size()); } @Test public void insert() { User user = new User(); user.setOrganizationId(1000); user.setUsername("test1"); user.setPassword("1"); user.setEnable(true); jdbcTemplateDao.insert(user); } @Test public void update() { User user = jdbcTemplateDao.queryById(16); user.setOrganizationId(1000); user.setUsername("test2"); user.setPassword("2"); user.setEnable(true); jdbcTemplateDao.update(user); } @Test public void delete() { jdbcTemplateDao.delete(16); } }
相关推荐
4. **SpringJUnit4ClassRunner**与**SpringRunner**:这些测试运行器使得JUnit测试类可以利用Spring的特性,如自动注入、事务管理等。 5. **@Before/AfterTransaction**:这些注解允许在测试前后进行事务操作,确保...
6. **Spring AOP事务管理**:源码中会展示如何使用声明式事务管理,通过@Transactional注解控制事务的开始、提交、回滚。 7. **Spring Security**:如果源码中涉及安全,那么会包含Spring Security的配置和用法,如...
5. **事务管理**:Spring提供了声明式事务管理,开发者可以在配置文件或注解中定义事务边界,Spring会自动处理事务的提交和回滚,简化了事务控制的代码。 6. **Spring Boot**:虽然标题没有提及,但Spring 4.x版本...
《精通Spring 2.x - 企业应用开发详解》是针对Spring框架深入学习的一本书,特别关注Spring 2.x版本的相关内容。本章17可能是关于Spring在企业级应用中的高级特性和实践,如集成其他技术栈,提升系统性能和可维护性...
1. **AOP(面向切面编程)**:Spring 3.x支持AOP,这是一种强大的设计模式,允许程序员在不修改原有代码的情况下,添加新的功能或进行横切关注点的处理,如日志、事务管理等。在这一章中,我们可能会学习如何定义和...
默认情况下,每个测试方法都会在一个新的数据库事务中运行,事务会在方法执行完毕后自动回滚,确保测试的隔离性。你可以通过`@Transactional`注解来开启或关闭事务管理: ```java import org.springframework.test....
测试方法将在一个事务中运行,完成后回滚,防止数据污染。 ```java @Test @Transactional public void testDatabaseOperation() { // 执行数据库操作 // 验证操作结果 } ``` 通过以上步骤,我们可以对Spring的...
测试中经常需要控制事务,Spring测试框架允许使用`@Transactional`注解来开启和回滚事务,确保测试环境的清洁。 5. **断言**: JUnit提供了各种断言方法,如`assertEquals()`、`assertNull()`等,用于验证测试...
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.transaction.annotation.Transactional; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration...
集成了Spring 3.2.2 Hibernate 3.3.2 Struts 2.3.4 用JPA的注解实现orm 不用创建数据库表 只需本机上有oracle即可 用JSR注解进行Spring的...用Spring Test整合Junit4 进行测试并自动事务回滚 不对数据库造成持久化操作
最后,我们可以在测试类中使用`@RunWith(SpringJUnit4ClassRunner.class)`和`@ContextConfiguration`注解来加载Spring配置,并进行事务相关的测试。 总的来说,Spring 3和Hibernate 4结合使用声明式事务管理,使得...
7.10.4. ThreadLocal目标源 7.11. 定义新的Advice类型 7.12. 更多资源 8. 测试 8.1. 简介 8.2. 单元测试 8.2.1. Mock对象 8.2.2. 单元测试支持类 8.3. 集成测试 8.3.1. 概览 8.3.2. 使用哪个支持框架 ...
7.10.4. ThreadLocal目标源 7.11. 定义新的Advice类型 7.12. 更多资源 8. 测试 8.1. 简介 8.2. 单元测试 8.2.1. Mock对象 8.2.2. 单元测试支持类 8.3. 集成测试 8.3.1. 概览 8.3.2. 使用哪个支持框架 ...
3. **异常回滚规则**:默认情况下,如果在@Transactional注解的方法中抛出未检查异常(继承自RuntimeException)或者Error,Spring会自动回滚事务。对于检查异常(非RuntimeException),如果不指定回滚规则,事务...
在本篇文章中,我们将详细介绍 Spring Boot 中 JUnit 回滚机制的实现原理和使用方法。通过阅读本文,您将了解到如何在 Spring Boot 项目中使用 JUnit 编写单元测试,并且测试结果不影响数据库。 首先,让我们了解...
Spring Test提供了`@Transactional`注解来自动回滚事务,避免测试之间的影响。此外,可以使用`@Before`和`@After`方法来自定义测试前后的准备和清理工作。 总之,通过正确使用JUnit、Mockito、Spring Test以及...
8. **AOP代理测试**: Spring Test模块提供了`@Rollback`和`@DirtiesContext`注解,前者用于在测试后自动回滚事务,后者标记测试可能污染了上下文,需要在下次测试前重新加载。 9. **AssertJ和Hamcrest**: Spring ...
声明式事务管理使得开发者无需在代码中处理事务的开始、提交和回滚,只需在配置中声明即可。在CH04中,你可能会发现如何配置和使用这些事务管理策略。 5. **JDBC模板**: Spring JDBC模块提供了一个JdbcTemplate类...
通过使用`@RunWith(SpringJUnit4ClassRunner.class)`注解,我们可以启动一个Spring应用程序上下文,并将测试类中的方法置于该上下文中执行。这允许我们在测试中直接注入依赖,而无需手动创建或管理它们。 3. **测试...
总结来说,使用JUnit针对Spring MVC的三层进行测试,我们需要: 1. 测试表现层(Controller),验证HTTP请求处理和视图渲染。 2. 测试业务层,确保业务逻辑的正确性和依赖隔离。 3. 测试服务数据访问层,验证数据库...