spring提供了一个做单元测试的方法。我最喜欢的是它的自动事务回滚功能。用起来很爽。
直接看代码
package com.ali.gongyi.model.account;
import junit.framework.Assert;
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.SpringJUnit4ClassRunner;
import org.springframework.test.context.transaction.TransactionConfiguration;
import org.springframework.transaction.annotation.Transactional;
import com.ali.gongyi.dao.BaseDao;
/**
* @author zhenghui
* @version 1.0
* @data 2011-2-11 下午03:22:14
*
*/
@RunWith(SpringJUnit4ClassRunner.class) //指定测试用例的运行器 这里是指定了Junit4
@ContextConfiguration("classpath:applicationContext.xml")
@TransactionConfiguration(transactionManager="transactionManager", defaultRollback=true)
@Transactional
public class TestUserDao {
@Autowired
private BaseDao<User, Long> userDao = null;
@Test
@Rollback(true)//上面已经设置defaultRollback=true。这里其实可以不用写了
public void testModifyUser() {
User user = userDao.findById(2L);
System.out.println(user.getId());
user.setDisplayName("系统管理员4");
userDao.saveOrUpdate(user);
Assert.assertEquals(userDao.findById(2L).getDisplayName(), "系统管理员4");
}
}
说明
1 userDao的实现可以是hibernate,也可以是ibatis (这两个我都做了测试,这种方式都是没有问题的)。当然最主要看重的是自动回滚。
2 transactionManager需要自己配置。
分享到:
相关推荐
这篇博客"Spring-test做数据库操作的单元测试2-跨库访问"探讨了如何利用Spring-test进行数据库操作的测试,尤其是涉及到跨库访问的场景。在企业级应用开发中,常常需要处理多个数据库的情况,例如主从数据库、读写...
首先,`spring-test`模块的核心目标是简化Spring应用的测试工作,它提供了对JUnit、TestNG等主流测试框架的集成,使得开发者能够便捷地进行单元测试和集成测试。在`3.2.0.RELEASE`这个版本中,Spring Test进一步增强...
对于涉及数据库操作的应用,Spring Test提供了`@DataJpaTest`和`@Sql`注解,可以方便地执行数据准备和清理,以及针对JPA实体的事务性测试。 6. **测试配置**: 使用`@ContextConfiguration`或`@WebApp...
对于数据库测试,可以利用`@DataJpaTest`或`@Sql`注解执行特定的SQL脚本来设置测试数据。`@WithMockUser`注解可以模拟用户身份进行授权测试。 5. **Mockito**: Mocking是单元测试中的一个重要概念,Mockito是一个...
spring-test项目实例 1.使用spring-test与junit进行单元测试。 2.包含回滚动作,避免测试数据污染数据库。
产品特点支持Spring和Spring Boot框架支持的版本是Spring 4.3.0+和Spring Boot 1.4.0+ 与Spring TestContext框架自动集成完全支持上下文缓存与Flyway数据库迁移工具无缝集成只需将@FlywayTest批注放置在测试类或方法...
如果DAO方法涉及数据库操作,可以考虑使用Spring的`@Transactional`注解,确保测试后数据库状态回滚,避免影响其他测试。 对于SpringJDBC中的Druid数据源,它是一个高效、强大的连接池实现。在测试中,我们可以配置...
《Spring Test 3.2.9:单元测试与JUnit的深度整合》 在软件开发过程中,单元测试是一项至关重要的任务,它确保了代码的正确性和稳定性。Spring框架提供了Spring Test模块,专门用于支持Spring应用程序的测试,而...
在Java开发领域,Spring框架无疑是最为广泛使用的轻量级框架之一,而Spring Test则是Spring框架的重要组成部分,它为开发者提供了强大的单元测试和集成测试工具。本文将深入探讨Spring Test的核心概念、功能以及实际...
Spring框架是Java开发中最常用的轻量级开源...无论是开发web应用、处理数据库操作,还是进行单元测试,都能找到相应的支持。3.2.0版本是一个稳定且广泛使用的版本,它引入了一些新的特性和改进,提高了性能和兼容性。
4. **数据源配置**:在测试中,经常需要模拟数据库操作。Spring Boot通过`@DataJpaTest`或`@Sql`注解可以方便地设置数据源和执行SQL脚本。 二、Spring Boot的单元测试 1. **Mockito**:Spring Boot测试框架常与...
spring-boot-db初始化测试 测试用例,显示未初始化数据库以进行测试的错误 该项目包含一个测试,该测试查询内存中的h2数据库以确保其不为空 $ mvn test ... 2014-10-14 10:10:21.409 WARN 3435 --- [ main] o.s.b.a....
6. **测试**:"spring-boot-sample-test"提供了单元测试和集成测试的示例,使用Spring Boot的测试支持库,可以方便地进行MockMVC和WebApplicationContext测试。 7. **国际化**:"spring-boot-sample-i18n"解释了...
在Spring Boot框架中,`spring-boot-test`模块是专门用于测试Spring Boot应用的工具集,它简化了单元测试和集成测试的过程。这个模块包含了多种测试相关的依赖,如JUnit、Mockito、Spring Test以及Spring Boot的测试...
6. **spring-test-4.3.4.RELEASE.jar**:提供了对Spring应用进行单元测试和集成测试的支持,包括TestContext框架、Mock对象和JUnit集成。 7. **jstl-1.2-sources.jar**:JavaServer Pages Standard Tag Library,是...
5. 自动化测试:利用Spring Test和Mockito进行单元测试和集成测试,确保代码质量。 总之,Spring Framework 5.3.14提供了一个强大而全面的平台,用于构建现代Java应用。通过对docs、libs和schema的深入理解,开发者...
7. **spring-test-4.2.4.RELEASE.jar**:Spring的测试模块,提供了对Spring应用的单元测试和集成测试的支持,可以帮助开发者验证Spring Mybatis的配置和功能是否正确。 整合Spring Mybatis通常涉及以下步骤: 1. ...
`@DataJpaTest` 和 `@AutoConfigureTestDatabase` 可以帮助我们快速建立数据库测试环境。 8. **Integration Test** 对于更复杂的集成测试,可以使用 `@SpringBootTest` 注解,它将启动整个 Spring Boot 应用程序。...
- **Spring Test**:包含了测试支持,帮助开发者进行单元测试和集成测试。 4. **5.3.7.RELEASE更新**: - 通常,每个新版本都会修复已知问题,提高性能,并添加新特性和改进。5.3.7.RELEASE可能包含安全更新,...
其次,db-util是一个专为数据库测试设计的工具,尤其在配合JPA和Hibernate使用时,其价值更为突出。JPA和Hibernate作为流行的ORM框架,极大地简化了数据库操作,但同时也可能引入N+1查询问题。N+1查询是指在一个循环...