单位的应用都是基于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
分享到:
相关推荐
源码中,这个功能主要在`META-INF/spring.factories`文件内的`org.springframework.boot.autoconfigure.EnableAutoConfiguration`键下列出的所有类中实现。开发者可以自定义自动配置类,以便为特定的库或服务提供...
- Web-INF:包含web.xml,定义Web应用的部署描述符,以及Struts2的配置文件。 - WEB-INF/classes:编译后的Java类文件会放在这里。 - WEB-INF/lib:项目的依赖库,包括Spring、Struts2、Hibernate等框架的jar文件。 ...
1. `pom.xml` - Maven或Gradle的构建文件,定义了项目依赖,包括spring-boot-starter-web、spring-boot-starter-data-jpa、hibernate核心库和thymeleaf的相关依赖。 2. `application.properties`/`application.yml`...
Spring的依赖可以通过Maven或Gradle来管理,然后在Web应用的`WEB-INF`目录下放置`springApplicationContext.xml`配置文件。 最后,为了测试和调试,我们可以使用JUnit和Mockito等工具,编写单元测试来验证Bean的...
Spring2的核心库包括`spring-beans.jar`, `spring-context.jar`, `spring-core.jar`, `spring-aop.jar`, `spring-web.jar`等。这些库提供了Spring框架的基础功能,例如依赖注入、AOP(面向切面编程)和Web支持。 2....
5. **项目结构**:在"webproject001"这样的项目中,常见的目录结构可能包括src/main/java(存放Java源代码)、src/main/webapp(存放Web资源,如JSP页面、静态资源、WEB-INF目录下的web.xml配置文件等)、WEB-INF/...
- 使用默认配置,Spring MVC 会自动寻找位于`/WEB-INF/resources/`下的静态资源。 - 可以通过`<mvc:resources>`标签指定静态资源的位置。 #### 八、请求映射到Action中的方法 Spring MVC 支持多种方式来映射请求到...
- **初始化**:读取配置文件并初始化 Spring 容器。 - **请求处理**:处理所有进入系统的 HTTP 请求。 - **响应生成**:根据处理结果生成最终的 HTTP 响应。 #### 五、Spring MVC 双亲上下文说明 在 Spring MVC 中...
2. **配置Struts2**:首先,在Web应用的WEB-INF目录下创建struts.xml配置文件,定义Action、结果类型和其他Struts2配置。同时,需要在web.xml中配置Struts2的前端控制器Filter。 3. **配置Spring**:创建Spring的...
这通常包括创建一个`META-INF/spring.factories`文件,里面指定自动配置类和初始化器。这样,当项目引入自定义starter后,Spring Boot会自动加载这些配置,简化项目的配置工作。 3. **源码分析**: 压缩包中的源码...
1. **设置项目结构**:创建项目目录,如`src/main/java`存放源代码,`src/main/resources`存放配置文件,`WEB-INF`存放Web应用相关的配置和库。 2. **引入库文件**:根据描述,压缩包中包含了所有必要的jar文件,...
@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = {"classpath*:applicationContext.xml"}) public class UserServiceTest { @Autowired private UserService userService; @...
- Web应用结构:包括WEB-INF目录下的web.xml,定义了应用的部署描述符。 - 可能还包括其他资源文件,如图片、样式表、JavaScript等。 这个项目提供了学习和实践SSH框架与Oracle数据库集成的实例,对于Java Web...
2. **配置文件编写**:理解Spring、SpringMVC和MyBatis各自的配置元素,如bean的声明、扫描包、数据源配置、SqlSessionFactory、Mapper配置等。 3. **注解驱动编程**:SpringMVC和MyBatis中的注解使用,如@...
3. **项目结构**:在Ant和Spring MVC的结合中,项目通常会有如下的目录结构:src/main/java(存放Java源代码)、src/main/resources(存放配置文件)、Web-INF(存放Web应用相关的配置和库文件)、WEB-INF/web.xml...
4. **项目结构**:通常,SSH项目会有明确的目录结构,包括src/main/java(存放Java源代码)、src/main/resources(配置文件)、Web-INF(Web应用的配置和库文件)、WEB-INF/classes(编译后的Java类)、WEB-INF/lib...
7. **部署相关的文件**:如WEB-INF目录下的web.xml,定义了应用的部署描述符。 8. **测试用例**:JUnit或其他测试框架编写的单元测试和集成测试。 综上所述,“WebWork+Spring+Hibernate网络购物系统”是一个典型的...
- `webapp/WEB-INF`:存放Web应用相关的资源,如`web.xml`部署描述符、Spring MVC的配置文件等。 - `webapp/WEB-INF/views`:视图文件夹,通常存放JSP或Thymeleaf等视图模板。 5. **开发流程**:在开发过程中,...
<artifactId>spring-webmvc <version>5.3.23 <!-- 其他相关依赖,如 JUnit、Servlet API 等 --> <groupId>org.apache.maven.plugins <artifactId>maven-compiler-plugin <version>3.8.1 ...
- `src/main/webapp`:存放Web相关的资源,如静态文件(CSS、JS、图片)、JSP或HTML页面、WEB-INF目录下的`web.xml`部署描述符。 6. **配置与集成**: 配置SpringMVC与MyBatis的集成,需要在Spring的配置文件中...