使用Spring TestContext 测试框架,完美测试基于Spring的应用程序

很长时间没有写过我的个人blog了,今天想记录一下刚刚使用Spring TestContext的心得。

 

至于Spring TestContext是个什么东西,各位只要google下就可以知道了。Spring TestContext为什么好?我只说一点,只使用Junit进行单元测试时,数据库现场容易遭受破坏, 而Spring TestContext刚可以很好的做到单元测试后恢复现场,使用的是事务回滚机制。

 

经过本人的实际使用,现在简单说明一下Spring TestContext的使用:

 

1,加jar包:

                如果你使用的是spring2.5.6,请把/spring-framework-2.5.6/dist/modules/spring-test.jar   copy到你的web项目的lib下。

 

2,写测试类,要从AbstractTransactionalJUnit4SpringContextTests继承。

 

package com.gxing.registration.service.impl;

import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.AbstractTransactionalJUnit4SpringContextTests;

import com.gxing.registration.model.User;
import com.gxing.registration.service.UserManager;

@ContextConfiguration
public class UserManagerImplTest extends AbstractTransactionalJUnit4SpringContextTests{

    @Autowired
    private UserManager userManager;
   
    @Test
    public void testAdd() {
        //ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
        //UserManager um = (UserManager) ctx.getBean("userManager");
       
        User u = new User();
        u.setUsername("testService");
        u.setPassword("testPassword");
        userManager.add(u);
    }

}

 

3,加上如测试代码中的Annotion,不明白就google,我不作解释,把这个权利留着给google老师。

 

3,编写UserManagerImplTest-context.xml文件,与上面的文件放到同一个包中

 

<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

 


<import resource="classpath:/beans.xml"/>

</beans>

 

4,把Juint4.4以上的jar包copy进web-info下的lib中。一定要注意是4.4以上的版本才支持。

 

5,Run as Juint Test,看看,测试通过了,但是我们的数据库里没有增加一个记录,看看控制台的Logger,你就明白了什么回事。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值