JUNIT单元测试

首先单元测试的包应该和src同级目录,这样在项目完成之后就可以直接删除,不影响项目任何地方。

导入JUnit4的jar包。

新建一个工具类

import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * 单元测试工具类
 * @author XX
 *
 */
public class UnitTestBase {

    protected static ClassPathXmlApplicationContext context = null;
    
    /*对于单一配置文件的项目利用这个做单元测试,直接把路径写死了*/
    @BeforeClass
    public static void setUpBeforeClass() throws Exception{
        //获取spring配置文件,生成上下文
        context = new ClassPathXmlApplicationContext("classpath*:beans.xml");
        context.start();
    }
    
    @AfterClass
    public static void setUpAfterClass()throws Exception{
        context.destroy();
    }
    
    /*下面的方法是用来适配有很多XML配置文件的项目,继承之后传入路径即可生成对应的context*/
    
    /*private ClassPathXmlApplicationContext context;
    
    private String springXmlpath;
    
    public UnitTestBase() {}
    
    public UnitTestBase(String springXmlpath){
        this.springXmlpath = springXmlpath;
    }
    
    @Before
    public void berfore()
    {
        if(StringUtils.isEmpty(springXmlpath))
        {
            springXmlpath = "classpath*:spring-*.xml";
        }
        try {
            context = new ClassPathXmlApplicationContext(springXmlpath.split("[,\\s]+"));
            context.start();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    
    
    @After
    public void after()
    {
        context.destroy();
    }
    
    @SuppressWarnings("unchecked")
    protected <T extends Object> T getBean(String beanId) {
        return (T)context.getBean(beanId);
    }
    
    protected <T extends Object> T getBean(Class<T> clazz) {
        return context.getBean(clazz);
    }
    */
}

然后选择对于你要新建单元测试的类按照下面的图操作

QQ截图20160327225334

QQ截图20160327225359

QQ截图20160327225520

QQ截图20160327225534

这里只是演示一下,一般不直接对实现类做测试,直接对接口来测试,一般测试的是服务层的接口和持久层的接口

下面是测试的代码

import org.junit.Test;

import com.xxx.newSystem.utils.UnitTestBase;//导入之前的工具类

public class IUserServiceTest extends UnitTestBase {

    IUserService userService = (IUserService) context.getBean("userService");
    
    @Test
    public void testLogin() {
        System.err.println(userService.login("xex", "123456"));
    }

}
//这是利用工具类中注释掉的方法,用于有多个xml配置文件的时候做测试
public class TestOneInterface extends UnitTestBase{

    public TestOneInterface(){
        super("classpath*:beans.xml");
    }
    
    @Test
    public void test()
    {
        IUserService userService = super.getBean("userService");
    
        System.err.println(userService.login("xx", "123456"));
    }
    
    
}

 

对于Junit4使用,网上的方法也有很多,注解的配置也有很多,我只是找我需要的。还是各取所需比较好,之后的项目我都会写单元测试的,做到真正的敏捷开发。

来源:http://www.cnblogs.com/linkstar/p/5327363.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值