zoukankan      html  css  js  c++  java
  • SpringTest框架JUnit单元测试用例获取ApplicationContext实例的方法

    JUnit单元测试用例中使用Spring框架,之前我的使用方式很直接。

    /**
     * 用于需要用到Spring的测试用例基类
     * 
     * @author lihzh
     * @alia OneCoder
     * @blog http://www.coderli.com
     */
    @RunWith(SpringJUnit4ClassRunner.class)
    @ContextConfiguration(locations = { "/spring/applicationContext.xml" })
    public class SpringTest {}

    在测试的过程中,有人提到,想要获取ApplicationContext实例。于是,添加了对ApplicationContext的注入。

    **
     * 用于需要用到Spring的测试用例基类
     * 
     * @author lihzh
     * @alia OneCoder
     * @blog http://www.coderli.com
     */
    @RunWith(SpringJUnit4ClassRunner.class)
    @ContextConfiguration(locations = { "/spring/applicationContext.xml" })
    public class SpringTest {
    
    @Autowired
    protected ApplicationContext ctx;

    其实,Spring中早已直接提供了更加方便使用的基类:AbstractJUnit4SpringContextTests。修改代码如下:

    /**
     * 用于需要用到Spring的测试用例基类
     * 
     * @author lihzh
     * @alia OneCoder
     * @blog http://www.coderli.com
     */
    @ContextConfiguration(locations = { "/spring/applicationContext.xml" })
    public class SpringTest extends AbstractJUnit4SpringContextTests {
    
    public <T> T getBean(Class<T> type) {
    return applicationContext.getBean(type);
    }
    
    public Object getBean(String beanName) {
    return applicationContext.getBean(beanName);
    }
    
    protected ApplicationContext getContext() {
    return applicationContext;
    }
    
    }

    代码也简洁多了。

    现在想想,你想要的常用功能,一般人家都能想到了。做之前,不妨先查查有没有现成可用的工具吧:)

    转自:http://www.coderli.com/junit-spring-test-applicationcontext/

  • 相关阅读:
    spring基础
    hibernate基础
    struts2基础
    javaEE(17)_邮件原理与JavaMail开发
    javase(14)_java基础增强
    javase(13)_网络编程
    javase(12)_集合框架_Queue
    C++:memset ,memcpy 和strcpy 的根本区别!
    16位的二进制数,每4位为一个数,写函数求他们的和
    态度!!!
  • 原文地址:https://www.cnblogs.com/hihtml5/p/6680526.html
Copyright © 2011-2022 走看看