`
enki_ding
  • 浏览: 210683 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

spring3单元测试遇到的问题小结

 
阅读更多

今天在做spring的单元测试,其中遇到不少问题,不过,大多都是环境的原因引起的。因为是两个分开的项目,一个作为另一个的支持项目,只要是待开发好后,供另一个项目jar包用的。就因为这样,开发环境引用的jar包不同。

 

1、一开始,就遇上hamcrest没有包含的问题,原来是我的junit版本引起的,我的junit版本中没有包含hamcrest。

 

2、Offending resource: class path resource [xml/applicationContextTest.xml]; nested exception is org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace [http://www.springframework.org/schema/tx]
Offending resource: class path resource [xml/datasourceTest.xml]

一看就知道是xml配置文件名字空间的问题,这个问题也花了不少时间。

后来在csdn上,一位仁兄这样说:如果遇到这个问题,就要注意看你的jar包中的META-INF目录下是不是有这两个文件:spring-handlers及spring-schemas!

csdn的路径:http://topic.csdn.net/u/20110913/11/0f07ef84-fe7a-4505-8ef3-7851df0998a4.html

于是我仔细检查一下我的jar,原来,竟然没有把jar包引进来!(org.springframework.transaction-3.0.5.RELEASE.jar)

后面遇到的几个问题,就知道缺包了。一个个引入。

 

3、基本上可以跑起来了,开始抛出:org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'transactionManager' is defined 这样的异常。

的确,我的配置中没有transactionManager定义的,因为,多数据源的原因。

在google中搜了一把。

引用:

My understanding is that in the context of unit tests (TransactionalTestExecutionListener ), the code that otherwise looks up the transaction manager is not used (TransactionInterceptor#determineTransactionManager ).

You could try to annotate your test class with @TransactionConfiguration , which accepts a transactionManager attribute. Not the most elegant way, but possibly the best option for the time being.

地址:http://stackoverflow.com/questions/3027511/when-transactionmanager-is-not-named-transactionmanager

在我们要测试的类中引用@TransactionConfiguration,指向自己的事务管理就可以了。

 

 

全部代码如下:

 

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({"classpath:/xml/applicationContextTest.xml"})
@TransactionConfiguration(transactionManager = "tm_cmail_web")
@Transactional
public class SysModelTest {

	@Resource
	private WebSysModelService modelService;
	
	@Test
	@Transactional
	@Rollback(true)
	public void testCreate(){
		WebSysModel m=new WebSysModel();
		m.setModelMid("HelloDing");
		m.setModelName("ding");
		m.setCreateTime(Calendar.getInstance().getTime());
		m.setModfiyTime(Calendar.getInstance().getTime());
		short s=1;
		m.setModelType(s);
		m.setModelUrlType(s);
		
		modelService.create(m);
	}
	
}
 小记一下,希望能帮到你。

学习的地址:http://287854442.iteye.com/blog/734322
分享到:
评论

相关推荐

    初学者在调试程序遇到的错误小结

    "初学者在调试程序遇到的错误小结" 本文总结了初学者在使用 Eclipse 和 Java 以及 Spring 框架时遇到的常见错误,并提供了相应的解决方案。 一、数据库方面的错误 * 出现 DataAccessException 这样的错误,一般是...

    在Spring中使用JTA事务管理

    小结 通过以上步骤,你已经在Spring中成功配置了JTA事务管理。无论是集成JOTM还是引用Tomcat内置的JTA支持,都能实现跨数据库的事务一致性。这在处理分布式系统或多数据源的应用中至关重要,因为它确保了即使在异常...

    Spring+Struts+Hibernate应用

    小结 (11.13) 对本章内容进行总结回顾,强调 Spring、Struts 和 Hibernate 整合的关键点及注意事项。 ### 结论 通过对《Spring+Struts+Hibernate 应用》的学习,我们可以了解到如何有效地将这三个框架整合起来,...

    springmvc学习笔记-前端控制器、上传、异常、开发心得小结等.zip

    开发过程中,我们可能会遇到各种问题,如性能优化、安全性考虑、缓存策略等。例如,为了提高性能,可以使用缓存技术(如Redis)来存储频繁访问的数据;在安全方面,需要防止SQL注入、XSS攻击等,使用Spring ...

    SSH练习的小结

    在SSH项目开发过程中,常常会用到各种工具,如Eclipse或IntelliJ IDEA作为集成开发环境,Maven或Gradle作为构建工具,Git进行版本控制,JUnit进行单元测试,以及MySQL或Oracle等数据库管理系统。熟练掌握这些工具...

    乱码解决,简单小结

    ### 乱码解决,简单小结 在Java开发过程中,我们经常会遇到乱码的问题,尤其是在前端与后端数据交互的过程中。本文将针对Java中的乱码问题进行总结,并提供几种简单的解决方案。 #### 一、理解字符编码与乱码产生...

    通过spring boot 设置tomcat解决 post参数限制问题

    小结 通过上述方法,我们可以解决 Post 参数限制问题,上传大文件或发送大量数据时不再出现问题。本篇文章对解决 Post 参数限制问题进行了详细的介绍,希望对您有所帮助。如果您有任何疑问,请随时与我们联系。

    Hbase+Spring boot实战分布式文件存储

    3-2 HBase读流程 3-3 HBase模块协作 3-4 HBase实战:Shell命令实战 3-5 HBase实 战:Java Api实现HBase连接类 3-6 HBase实战:Java Api实现HBase操作类 3-7 HBase实战:用过滤器筛选数据 3-8 HBase阶段小结 ...

    Spring Boot修改启动端口的方法

    小结 在本文中,我们学习了如何修改Spring Boot应用程序的启动端口。我们可以使用`EmbeddedServletContainerCustomizer`接口或`application.properties`配置文件来实现启动端口的修改。这些方法可以帮助我们解决...

    SSH开发详解

    小结 (11.13) 通过对本章的学习,读者不仅能够掌握如何使用Spring、Struts与Hibernate进行联合开发的基本方法,还能深入了解这些框架之间如何协同工作以提高开发效率和系统性能。希望这些知识能够为Java学习者在...

    毕业设计-基于SSM的mysql-社会保险管理系统lw7-设计与实现(源码 + 数据库 + LW + 演示视频).zip

    目录 1 前言 3 1.1研究背景 3 1.2国内外研究现状、水平 5 1.3社会保险管理系统的作用 6 1.4社会保险管理系统的应用范围 6 ...5.12 小结 26 6 系统测试 27 6.1 系统测试的必要性 27 6.2 系统测试的方法 27

    Struts2 in action中文版

    第一部分 Strut 2:一个全新的框架 第1章 Struts 2:现代Web框架 2 1.1 Web应用程序:快速学习 2 1.1.1 构建Web应用程序 2 1.1.2 基础技术简介 3 1.1.3 深入研究 6 1.2 Web应用程序框架 7 ...15.7 小结 332

    16051127石平河的个人工作总结1

    5. **结果分析与个人小结**:作者对项目的整体运行情况进行了分析,确认了旅游推荐模块的功能,并意识到实践的重要性。在实践中,理论知识和实际应用相结合,使作者发现了编程理论学习中的不足,并通过学习补充了...

    卓尔卓尔.rar卓尔.rar卓尔.rar卓尔.rar.rar

    【描述】:“工作中问题记录与小结,放在这里是备份,无需下载”这段描述暗示了压缩包内的内容可能包含了作者在工作中的经验总结和遇到问题的记录。这种文档通常对个人或团队的知识管理非常重要,可以作为日后解决...

    ssh实践

    在这个"ssh实践"的项目中,"小结.txt"可能是作者对SSH整合过程中的总结,可能包含了关键配置、遇到的问题及解决方案。而"testSpring源码"可能是作者为了测试Spring功能而编写的代码,可能涵盖了Spring的IoC、AOP、...

    网上书店课程设计.pdf

    6. **课程设计小结** - 回顾整个设计过程,总结遇到的问题、解决方案以及经验教训。 通过这个项目,学生不仅能够熟悉互联网开发的基本流程,还能深入理解Java EE技术在实际项目中的应用,为未来从事相关工作打下...

    《ajax框架:dwr与ext》实战

    3. **应用小结**: - 总结DWR的优点和不足。 - 分析DWR与其他Ajax框架的区别。 #### 四、DWR综合实践:用户管理模块实现 1. **系统功能界面**: - 设计用户管理界面,包括用户列表、新增用户、编辑用户等功能。...

    JAVAWEB应用开发报告.pdf

    5. **项目开发小结**: - 开发过程中会遇到的问题解决,如异常处理、性能优化、安全性考虑等。 - 技术上的学习与应用,如MVC模式的理解、AJAX的运用、数据库操作的技巧等。 - 团队协作的经验,包括版本控制(Git...

Global site tag (gtag.js) - Google Analytics