zoukankan      html  css  js  c++  java
  • @RunWith和 SpringJUnit4ClassRunner ---->junit4和Spring一起使用

    今天在看Spring的Demo的时候,看到了如此单元测试的写法

    如下:

    @RunWIth(SpringJunit4ClassRunner.class)
    
    @ContextConfiguration(locations = {"classpath:applicationContext.xml"}
    
    public  class MyTest
    
    {
    
    @Test
    public void hehe()
    {
    //.......
    }
    }
    

    这种写法是为了让测试在Spring容器环境下执行。

    Spring的容器环境是啥呢?

    比如常见的 Service Dao Action , 这些个东西,都在Spring容器里,junit需要将他们拿到,并且使用来测试。

    好,笔者写一个十分简单的demo让大家有个体会!

    显示demo的项目结构

    要写的东西就两个: applicationContext.xml 和MyTest.java
    applicationContext.xml 中仅仅只定义了一个Date对象。

    <?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.xsd">  
    
    
        <bean name="date" class="java.util.Date"/>  
    
    
    </beans> 
    

     

    接下来是MyTest.java的内容

     import org.junit.Test;  
        import org.junit.runner.RunWith;  
        import org.springframework.test.context.ContextConfiguration;  
        import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;  
    
        import javax.annotation.Resource;  
        import java.util.Date;  
    
        /** 
         * Created by HuLuo on 2016/8/19. 
         */  
        @RunWith(SpringJUnit4ClassRunner.class)  
        @ContextConfiguration(locations = {"classpath:applicationContext.xml"})  
        public class MyTest  
        {  
            @Resource  
            Date date;  
    
            @Test  
            public void hehe()  
            {  
                System.out.println(date.toLocaleString());  
            }  
        }  
    

     

    最后只需要运行就可以了。

    最后如图所示,成功拿到了Spring容器里的Date对象。

    诸如哪些 Action Service Dao ServiceImpl DaoImpl都是一个道理,可以通过这种方式拿到,然后进行单元测试。。。

  • 相关阅读:
    直线方程和直线系方程
    多个参数之和积的取值范围
    解析几何习题
    React之Perf
    一文看懂npm、yarn、pnpm之间的区别
    Cannot read property 'properties' of undefined
    为什么要用PolyFill(JS中的修补匠)
    es6-promise
    原生js实现each方法
    有趣的js获取input标签中光标的索引
  • 原文地址:https://www.cnblogs.com/MaxElephant/p/8108200.html
Copyright © 2011-2022 走看看