SpringMVC测试@Test
来源:互联网 发布:淘宝中长高精油可靠吗 编辑:程序博客网 时间:2024/06/02 04:46
@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration({"classpath*:applicationContext.xml"}) public class SpringTestUser { private static final Logger logger = LoggerFactory.getLogger(SpringTestUser.class); @Resource private UserDAO userDao; @Test public void testGetUserById() { Integer userId = 1; User user = userDao.getUserById(userId); logger.info("用户的名字是 : " + user.getName()); } }
注意标签@RunWith(SpringJUnit4ClassRunner.class)说的是我们这段代码其实用的还是JUnit进行测试的
@ContextConfiguration({“classpath*:applicationContext.xml”})以标签的形式完成对配置文件的加载
import static org.Junit.Assert.assertEquals; import org.Junit.Test; import org.Junit.runner.RunWith; import org.Springframework.beans.factory.annotation.Autowired; import org.Springframework.test.context.ContextConfiguration; import org.Springframework.test.context.Junit4.SpringJUnit4ClassRunner; import org.Springframework.transaction.annotation.Transactional; import domain.Account; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration("/config/Spring-db1.xml") @Transactional public class AccountServiceTest1 { @Autowired private AccountService service; @Test public void testGetAcccountById() { Account acct = Account.getAccount(1, "user01", 18, "M"); service.insertIfNotExist(acct); Account acct2 = service.getAccountById(1); assertEquals(acct,acct2); } }
@RunWith 注释标签是 Junit 提供的,用来说明此测试类的运行者,这里用了 SpringJUnit4ClassRunner,这个类是一个针对 Junit 运行环境的自定义扩展,用来标准化在 Spring 环境中 Junit4.5 的测试用例,例如支持的注释标签的标准化
@ContextConfiguration 注释标签是 Spring test context 提供的,用来指定 Spring 配置信息的来源,支持指定 XML 文件位置或者 Spring 配置类名,这里我们指定 classpath 下的 /config/Spring-db1.xml 为配置文件的位置
@Transactional 注释标签是表明此测试类的事务启用,这样所有的测试方案都会自动的 rollback,即您不用自己清除自己所做的任何对数据库的变更了
@Autowired 体现了我们的测试类也是在 Spring 的容器中管理的,他可以获取容器的 bean 的注入,您不用自己手工获取要测试的 bean 实例了
小结
如果您希望在 Spring 环境中进行单元测试,那么可以做如下配置:
继续使用 Junit4 测试框架,包括其 @Test 注释标签和相关的类和方法的定义,这些都不用变
- 您需要通过 @RunWith(SpringJUnit4ClassRunner.class) 来启动 Spring 对测试类的支持
- 您需要通过 @ContextConfiguration 注释标签来指定 Spring 配置文件或者配置类的位置
- 需要通过 @Transactional 来启用自动的事务管理
- 您可以使用 @Autowired 自动织入 Spring 的 bean 用来测试
另外您不再需要:
- 手工加载 Spring 的配置文件
- 手工清理数据库的每次变更
- 手工获取 application context 然后获取 bean 实例
阅读全文
0 0
- SpringMVC测试@Test
- spring test---测试SpringMvc初识
- springMVC test
- 通过Junit和Spring-Test测试SpringMVC的web应用
- 测试。。。test~~~
- Test测试
- 测试TEST
- test 测试
- test测试
- Test测试
- SpringMVC测试
- SpringMVC测试
- springmvc测试
- SpringMVC测试
- springmvc处理器映射器test
- springmvc 执行@Test报错
- Blog Test - 博客测试
- test中文测试标题
- 如何完全禁用或卸载Windows 10中的OneDrive
- thinkphp&redis
- leetcode105. Construct Binary Tree from Preorder and Inorder Traversal
- Android 接受广播唤醒屏幕
- 解析BeanDefinition之创建用于属性承载的BeanDefinition。
- SpringMVC测试@Test
- JS实现二维数组案例 矩阵转置
- 在selenium中设置代理ip
- 多线程实现的第三种有返回值的方法
- 剑指Offer——n个骰子的点数
- JSP自定义标签-第一个简单的例子
- parseInt
- leetcode31. Next Permutation
- UDP 客户端编程