可以利用
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(loader=JPortContextLoader.class,locations = { "/system/test-applicationContext.xml",
"/system/applicationContext-spring-security-hibernate.xml",
})
来加载spring配置文件。注意JPortContextLoader为自定义的,符合ContextLoader即可,需要这样写:
public class JPortContextLoader implements ContextLoader {
@Override
public ApplicationContext loadContext(String... paths) throws Exception {
System.out.println("load");
ApplicationContext ctx =
new FileSystemXmlApplicationContext(wholePaths.toArray(new String[0]));
return ctx;
}
@Override
public String[] processLocations(Class<?> arg0, String... arg1) {
System.out.println("processLocations"+arg1);
//处理配置的locations
return arg1;
}
}
注意:即使在processLocations中什么都没处理,也必须返回arg1那个参数,否则就运行不了。
主要是默认的ContextLoader只能取classpath中的,我也没有找到能取文件系统的,就扩展了一个,在TestContext类中,先执行
processLocations
方法处理配置的locations,然后再执行
loadContext
来获得ApplicationContext。
对于需要回滚事务的继承下Spring的抽象类即可:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(loader=JPortPentahoContextLoader.class,locations = { "/system/test-applicationContext.xml",
"/system/applicationContext-spring-security-hibernate.xml"
})
public class PentahoTransactionalJUnit4SpringContextTests extends
AbstractTransactionalJUnit4SpringContextTests {
然后其他类只要继承这个基类就可以来,然后
@TransactionConfiguration(defaultRollback = true)注解还可以写在子类里,即具体的测试用例中。
另外我还使用@Autowired注解,这需要在配置文件中写上点东西。见下面的链接:
http://www.mkyong.com/spring/spring-auto-wiring-beans-with-autowired-annotation/
我们的项目配置文件不在Classpath中,如果想利用Spring的测试框架就有点别扭,过去都是使用Eclipse的link source来搞,但是团队开发时非常别扭,因为link source是指向绝对路径的,大家的不一样,而且我使用linux开发,这样也不相同。
另外一点,运行环境使用JNDI配置SessionFactory,而开发环境IDE使用非JNDI配置,于是就建了一个test-applicationContext.xml,它和main-applicationContext的区别就是运行环境和IDE环境的不同,然后它作为一个集成性质的配置,其他的配置都通过import resource的方式。
源代码万岁
分享到:
相关推荐
在Spring框架中,TestContext模块为开发者提供了强大的测试支持,特别是在Spring 2.5版本中,这个测试框架进一步增强了测试的便利性和可扩展性。它允许我们以声明式的方式配置和管理测试环境,包括bean的初始化、...
这个压缩包提供的"spring扩展点测试示例代码"是一个实例,帮助我们理解如何在实践中利用Spring的扩展点进行自定义功能的实现。 首先,Spring的核心设计理念之一就是“依赖注入”(Dependency Injection,DI),它...
- `spring-context`:扩展了`spring-beans`,提供了上下文支持,如事件发布、国际化和资源访问等功能。 - `spring-aop`:实现了AOP框架,支持切点表达式、通知类型和代理模式。 - `spring-web`:提供了Web相关的支持...
- 对测试框架进行了增强,提高了测试效率。 #### 四、Spring框架4.1的新特性和增强 - **4.1 JMS改进** - 增强了Java消息服务(JMS)支持。 - **4.2 缓存改进** - 改进了缓存管理功能,增加了更多缓存策略和API...
1. **降低组件之间的耦合度**:通过控制反转(IoC)机制,Spring框架可以有效地降低系统中各个组件之间的耦合度,实现软件各层之间的解耦,从而提高系统的灵活性和可扩展性。 2. **提供众多服务**:Spring框架内置...
Spring for Android是Spring.io针对Android平台推出的一个框架,旨在帮助开发者构建高质量、可测试和模块化的应用程序。下面将详细介绍Spring框架在Android中的应用和相关知识点。 1. **依赖注入(DI)** Spring框架...
5. **测试**:Spring提供了测试框架支持,包括模拟对象、测试上下文框架和对单元测试和集成测试的工具,以简化应用的测试工作。 6. **工具**:Spring工具集支持IDE集成,提供了一种更高效的方式来开发Spring应用...
10. **IoC容器扩展**:Spring.NET框架设计为高度可扩展,允许开发者自定义容器的行为,通过编写自定义的生命周期策略、类型解析器或对象工厂等。 通过《Spring.NET框架参考文档》中文版.chm文件,你可以深入学习并...
八、Spring测试 Spring提供了丰富的测试支持,包括单元测试和集成测试。它允许在测试环境中轻松创建和配置Bean,方便进行模拟对象和依赖注入。 九、Spring Boot Spring Boot是基于Spring框架的快速开发工具,它简化...
书中会介绍如何编写和执行Spring测试,以及如何利用Mockito等工具进行模拟对象测试。 总之,《Spring框架电子书》是一本全面介绍Spring框架的资源,无论你是初学者还是经验丰富的开发者,都能从中获取到有价值的...
Spring的扩展性允许开发者按需引入特定的模块,而不需要整个框架的全部组件。 总而言之,Spring框架以其低侵入性、灵活性和模块化设计受到了全球开发者的喜爱,它不仅适用于中小型企业应用,也能够支持大型企业级...
SSH和Spring框架是Java开发中的两个重要工具,它们在企业级应用开发中占据了核心地位。SSH,是由Struts2、Spring和Hibernate三个框架组成的集成解决方案,而Spring则是一个全面的后端开发框架,包含了多种功能模块。...
Spring框架在设计过程中大量使用了设计模式来提高其灵活性和可扩展性。以下是一些在Spring中常见的设计模式: ##### 4.1 工厂模式 工厂模式在Spring框架中被广泛应用于BeanFactory接口的实现。BeanFactory负责创建...
4. **Spring Context**:这是Spring框架的上下文模块,它扩展了Core Container的概念,引入了环境感知能力,如bean的国际化、事件传播以及对其他Spring模块(如JDBC、JMS、JMX等)的支持。 5. **Spring JDBC**:...
2. `JUnit`:一个广泛使用的单元测试框架,Spring Test与JUnit深度集成,提供测试注解如`@Test`,`@Before`,`@After`等。 3. `MockitoJUnitRunner`或`SpringRunner`:这两个运行器分别来自Mockito和Spring,帮助...
Spring框架是中国最流行的Java企业级应用开发框架,它以其轻量级、全面的特性深受开发者喜爱。Spring的核心设计理念是依赖注入(Dependency Injection, DI)和面向切面编程(Aspect-Oriented Programming, AOP),这...