`
sslaowan
  • 浏览: 380357 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

扩展Spring测试框架

 
阅读更多

可以利用

 

@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 2.5 TestContext 测试框架

    在Spring框架中,TestContext模块为开发者提供了强大的测试支持,特别是在Spring 2.5版本中,这个测试框架进一步增强了测试的便利性和可扩展性。它允许我们以声明式的方式配置和管理测试环境,包括bean的初始化、...

    spring扩展点测试示例代码

    这个压缩包提供的"spring扩展点测试示例代码"是一个实例,帮助我们理解如何在实践中利用Spring的扩展点进行自定义功能的实现。 首先,Spring的核心设计理念之一就是“依赖注入”(Dependency Injection,DI),它...

    Spring框架 jar包

    - `spring-context`:扩展了`spring-beans`,提供了上下文支持,如事件发布、国际化和资源访问等功能。 - `spring-aop`:实现了AOP框架,支持切点表达式、通知类型和代理模式。 - `spring-web`:提供了Web相关的支持...

    Spring框架测试.zip

    JUnit 4.12 是一个广泛使用的Java单元测试框架,它是开源的,并且是JUnit系列的第四个主要版本。JUnit 4.12 提供了编写和运行可重复的测试的强大功能,使得开发者能够对代码进行验证,确保其按照预期工作。它引入了...

    Spring框架参考手册

    - 对测试框架进行了增强,提高了测试效率。 #### 四、Spring框架4.1的新特性和增强 - **4.1 JMS改进** - 增强了Java消息服务(JMS)支持。 - **4.2 缓存改进** - 改进了缓存管理功能,增加了更多缓存策略和API...

    Spring框架基础总结

    1. **降低组件之间的耦合度**:通过控制反转(IoC)机制,Spring框架可以有效地降低系统中各个组件之间的耦合度,实现软件各层之间的解耦,从而提高系统的灵活性和可扩展性。 2. **提供众多服务**:Spring框架内置...

    android的spring框架

    Spring for Android是Spring.io针对Android平台推出的一个框架,旨在帮助开发者构建高质量、可测试和模块化的应用程序。下面将详细介绍Spring框架在Android中的应用和相关知识点。 1. **依赖注入(DI)** Spring框架...

    spring框架外文文献.docx

    5. **测试**:Spring提供了测试框架支持,包括模拟对象、测试上下文框架和对单元测试和集成测试的工具,以简化应用的测试工作。 6. **工具**:Spring工具集支持IDE集成,提供了一种更高效的方式来开发Spring应用...

    Spring.NET框架参考文档_中文版

    10. **IoC容器扩展**:Spring.NET框架设计为高度可扩展,允许开发者自定义容器的行为,通过编写自定义的生命周期策略、类型解析器或对象工厂等。 通过《Spring.NET框架参考文档》中文版.chm文件,你可以深入学习并...

    Spring框架学习笔记

    八、Spring测试 Spring提供了丰富的测试支持,包括单元测试和集成测试。它允许在测试环境中轻松创建和配置Bean,方便进行模拟对象和依赖注入。 九、Spring Boot Spring Boot是基于Spring框架的快速开发工具,它简化...

    spring框架电子书

    书中会介绍如何编写和执行Spring测试,以及如何利用Mockito等工具进行模拟对象测试。 总之,《Spring框架电子书》是一本全面介绍Spring框架的资源,无论你是初学者还是经验丰富的开发者,都能从中获取到有价值的...

    Spring.net框架

    综上所述,Spring.NET框架通过Ioc和AOP提供了解耦和模块化的解决方案,使得开发者能够构建更易于维护和扩展的.NET应用程序。通过配置文件和编程方式的组合,可以灵活地管理对象的生命周期和横切关注点,提高代码的可...

    Spring框架开发手册

    Spring的扩展性允许开发者按需引入特定的模块,而不需要整个框架的全部组件。 总而言之,Spring框架以其低侵入性、灵活性和模块化设计受到了全球开发者的喜爱,它不仅适用于中小型企业应用,也能够支持大型企业级...

    SSH和Spring框架简介

    SSH和Spring框架是Java开发中的两个重要工具,它们在企业级应用开发中占据了核心地位。SSH,是由Struts2、Spring和Hibernate三个框架组成的集成解决方案,而Spring则是一个全面的后端开发框架,包含了多种功能模块。...

    Spring_框架的设计理念与设计模式分析

    Spring框架在设计过程中大量使用了设计模式来提高其灵活性和可扩展性。以下是一些在Spring中常见的设计模式: ##### 4.1 工厂模式 工厂模式在Spring框架中被广泛应用于BeanFactory接口的实现。BeanFactory负责创建...

    spring整合其他框架

    Spring和CXF结合,可以方便地实现服务的发布、调用和管理,同时利用Spring的依赖注入和AOP(面向切面编程)能力,增强服务的可测试性和可维护性。 3. Spring与Mail整合:Spring的Mail API允许开发者轻松地发送邮件...

    Spring框架jar包全

    4. **Spring Context**:这是Spring框架的上下文模块,它扩展了Core Container的概念,引入了环境感知能力,如bean的国际化、事件传播以及对其他Spring模块(如JDBC、JMS、JMX等)的支持。 5. **Spring JDBC**:...

Global site tag (gtag.js) - Google Analytics