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都是一个道理,可以通过这种方式拿到,然后进行单元测试。。。

  • 相关阅读:
    1026: [SCOI2009]windy数 (数位DP)
    Codeforces Round #603 (Div. 2)
    小明种苹果(续)
    1001: [BeiJing2006]狼抓兔子 (最小割)
    codeforces 990C Bracket Sequences Concatenation Problem
    codeforces990D
    codeforces 1037D. Valid BFS?
    pytorch inception v3 KeyError: <class 'tuple'>解决方法
    codeforces 1025C Plasticine zebra
    codeforces1027D
  • 原文地址:https://www.cnblogs.com/MaxElephant/p/8108200.html
Copyright © 2011-2022 走看看