`

Spring Junit 读取WEB-INF下的配置文件

阅读更多
单位的应用都是基于spring的框架,maven做项目管理。原来我们的单元测试很麻烦,尤其是controller层的测试,常常需要copy WEB-INF下的IOC配置文件。
其实不用copy,可以通过file的形式进行加载。

描述:maven管理的javaEE项目 ,用spring 的SpringJUnit4ClassRunner做controller层的单元测试。

问题的来源:一般情况下(得益于spring的父子容器),父容器一般包含Service,Dao层的ioc配置 ,一般放在src/main/resources下,由org.springframework.web.context.ContextLoaderListener启动加载;controller的ioc层的配置一般放在WEB-INF下,由org.springframework.web.servlet.DispatcherServlet来启动加载。

这样配置的好处是:测试dao和service层的代码,不用加载controller的ioc配置,这样就能拒绝dao和service对controller的不合理的引用。
如果要做controller层的单元测试,就需要加载WEB-INF的controller的ioc配置,这样才能正常测试。

配置的关键是如下方式加载配置:file:src/main/webapp/WEB-INF/ServletConfigs/AppServlet/servlet-context.xml。因为src是项目文件夹下的子目录,所有使用file:fileAddress 就能很好的完成加载~

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath*:META-INF/spring/*-beans.xml", 
        "classpath*:META-INF/spring/*Context.xml",
        "classpath*:dubbo_config/*.xml",
        "file:src/main/webapp/WEB-INF/ServletConfigs/AppServlet/servlet-context.xml"})
public class MessageControllerTest {
    private static final Logger logger = LoggerFactory.getLogger(MessageControllerTest.class);
    @Autowired
    private MessageController controller;
    
    @Before
    public void setUp() throws Exception {
    }

    @Test
    public void testAndroidPush() {
        ModelAndView mav=   controller.androidPush(2913010L, 0);  
        logger.info("return  {}",mav);
    }

}


参考:http://blog.csdn.net/rj042/article/details/7549462
0
1
分享到:
评论

相关推荐

    Spring Boot源码(spring-boot-2.6.2.tar.gz)

    源码中,这个功能主要在`META-INF/spring.factories`文件内的`org.springframework.boot.autoconfigure.EnableAutoConfiguration`键下列出的所有类中实现。开发者可以自定义自动配置类,以便为特定的库或服务提供...

    采用Spring+Struts2+Hibernate框架,实现一个仿天猫购物网站的web工程。.zip

    - Web-INF:包含web.xml,定义Web应用的部署描述符,以及Struts2的配置文件。 - WEB-INF/classes:编译后的Java类文件会放在这里。 - WEB-INF/lib:项目的依赖库,包括Spring、Struts2、Hibernate等框架的jar文件。 ...

    spring boot+hibernate+thymeleaf 练习demo项目源码

    1. `pom.xml` - Maven或Gradle的构建文件,定义了项目依赖,包括spring-boot-starter-web、spring-boot-starter-data-jpa、hibernate核心库和thymeleaf的相关依赖。 2. `application.properties`/`application.yml`...

    spring核心工厂配置源码

    Spring的依赖可以通过Maven或Gradle来管理,然后在Web应用的`WEB-INF`目录下放置`springApplicationContext.xml`配置文件。 最后,为了测试和调试,我们可以使用JUnit和Mockito等工具,编写单元测试来验证Bean的...

    spring2配置

    Spring2的核心库包括`spring-beans.jar`, `spring-context.jar`, `spring-core.jar`, `spring-aop.jar`, `spring-web.jar`等。这些库提供了Spring框架的基础功能,例如依赖注入、AOP(面向切面编程)和Web支持。 2....

    我的第一个javaweb项目(未优化版本)

    5. **项目结构**:在"webproject001"这样的项目中,常见的目录结构可能包括src/main/java(存放Java源代码)、src/main/webapp(存放Web资源,如JSP页面、静态资源、WEB-INF目录下的web.xml配置文件等)、WEB-INF/...

    struts2+spring+hibernate整合步骤

    2. **配置Struts2**:首先,在Web应用的WEB-INF目录下创建struts.xml配置文件,定义Action、结果类型和其他Struts2配置。同时,需要在web.xml中配置Struts2的前端控制器Filter。 3. **配置Spring**:创建Spring的...

    customize springboot-starter.rar

    这通常包括创建一个`META-INF/spring.factories`文件,里面指定自动配置类和初始化器。这样,当项目引入自定义starter后,Spring Boot会自动加载这些配置,简化项目的配置工作。 3. **源码分析**: 压缩包中的源码...

    Struts2+Hibernate+Spring3.3.2环境配置

    1. **设置项目结构**:创建项目目录,如`src/main/java`存放源代码,`src/main/resources`存放配置文件,`WEB-INF`存放Web应用相关的配置和库。 2. **引入库文件**:根据描述,压缩包中包含了所有必要的jar文件,...

    Spring2.5+Struts1.3.8+Hibernate3.0整合

    @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = {"classpath*:applicationContext.xml"}) public class UserServiceTest { @Autowired private UserService userService; @...

    移动ssh项目(struts+spring+hibernate+oracle).rar

    - Web应用结构:包括WEB-INF目录下的web.xml,定义了应用的部署描述符。 - 可能还包括其他资源文件,如图片、样式表、JavaScript等。 这个项目提供了学习和实践SSH框架与Oracle数据库集成的实例,对于Java Web...

    ssmDemo.zip

    2. **配置文件编写**:理解Spring、SpringMVC和MyBatis各自的配置元素,如bean的声明、扫描包、数据源配置、SqlSessionFactory、Mapper配置等。 3. **注解驱动编程**:SpringMVC和MyBatis中的注解使用,如@...

    17_ant_完整的用户管理小项目_搭建了spring_mvc的框架

    3. **项目结构**:在Ant和Spring MVC的结合中,项目通常会有如下的目录结构:src/main/java(存放Java源代码)、src/main/resources(存放配置文件)、Web-INF(存放Web应用相关的配置和库文件)、WEB-INF/web.xml...

    网上商城项目.zip

    4. **项目结构**:通常,SSH项目会有明确的目录结构,包括src/main/java(存放Java源代码)、src/main/resources(配置文件)、Web-INF(Web应用的配置和库文件)、WEB-INF/classes(编译后的Java类)、WEB-INF/lib...

    webwork+spring+hibernate网络购物系统

    7. **部署相关的文件**:如WEB-INF目录下的web.xml,定义了应用的部署描述符。 8. **测试用例**:JUnit或其他测试框架编写的单元测试和集成测试。 综上所述,“WebWork+Spring+Hibernate网络购物系统”是一个典型的...

    基于SSM框架的房屋租赁网站

    - `webapp/WEB-INF`:存放Web应用相关的资源,如`web.xml`部署描述符、Spring MVC的配置文件等。 - `webapp/WEB-INF/views`:视图文件夹,通常存放JSP或Thymeleaf等视图模板。 5. **开发流程**:在开发过程中,...

    Maven+Sprint MVC简单入门例子

    <artifactId>spring-webmvc <version>5.3.23 <!-- 其他相关依赖,如 JUnit、Servlet API 等 --> <groupId>org.apache.maven.plugins <artifactId>maven-compiler-plugin <version>3.8.1 ...

    springMVC+MyBatis+Oracle+Web实现增删改查完整案例+数据库数据)

    - `src/main/webapp`:存放Web相关的资源,如静态文件(CSS、JS、图片)、JSP或HTML页面、WEB-INF目录下的`web.xml`部署描述符。 6. **配置与集成**: 配置SpringMVC与MyBatis的集成,需要在Spring的配置文件中...

Global site tag (gtag.js) - Google Analytics