- 浏览: 942091 次
- 性别:
- 来自: 北京
-
文章分类
- 全部博客 (445)
- 备忘 (0)
- java基础 (28)
- jsp (15)
- css (4)
- javascript (30)
- struts (7)
- servlet (2)
- struts2 (7)
- jdbc (16)
- hibernate (22)
- ibatis (0)
- jpa (1)
- spring (17)
- spring定时任务 (8)
- 整合开发 (12)
- JavaArticle (0)
- php (6)
- velocity (2)
- mysql (19)
- sqlserver (52)
- oracle (23)
- lucene (49)
- ajax (13)
- dwr (5)
- JFreeChart (1)
- service (14)
- tools (18)
- c#基础 (20)
- 程序安全 (0)
- 学习网站 (1)
- 社会需求 (2)
- flash (1)
- 流媒体 (1)
- java_code (1)
- htmlparser (1)
- 速动画教程 (5)
- 设计模式 (1)
- xml操作 (2)
- uml操作 (4)
- 测试 (1)
- linux (8)
- 版本控制 (4)
- 服务器 (12)
- 安全 (6)
- 美工 (2)
最新评论
-
Zhang_amao:
我想问一下, 你用的lucene版本和highligher的版 ...
使用Lucene的Highlighter实现文件摘要的自动提取 -
wangmengfanwangzhi:
博主,你的QQ是什么啊?有关于lucene的问题想要请教啊~~ ...
Lucene下载及测试 -
cutesunshineriver:
讲得很好,理解起来很顺,对个人学习的帮助性很大,谢谢博主。
velocity入门一 -
libin2722:
我这里有一个任务调度,在晚上3点时候会自动将数据库中某表的数据 ...
Lucene-2.2.0 源代码阅读学习(16) -
greatwqs:
java -cp $JVM_ARGS $classpath ...
java的cp命令
Spring DAO层的测试AbstractTransactionalDataSourceSpringContextTests
- 博客分类:
- spring
1. Spring DAO层的测试AbstractTransactionalDataSourceSpringContextTests
2. spring2.5, 不知道为什么Junit4的风格用不了!!
Spring的DAO层的测试,我是通过继承AbstractTransactionalDataSourceSpringContextTests来做的。比较简单,而且又支持回滚,没有数据库的耗时操作,又是spring-test.jar发布包里直接支持的,所以就选个了。
代码实现也很简单,我先定义了一个base类,其他的测试类全部都继承这个base类,就更方便控制了。
public class BaseDAOTestCase extends AbstractTransactionalDataSourceSpringContextTests {
protected final static Log log = LogFactory.getLog(BaseDAOTestCase.class);
@Override
public String[] getConfigLocations() {
setAutowireMode(AUTOWIRE_BY_TYPE);
return new String[] { "classpath:/test-*-beans.xml", "classpath:/test-*-beans.xml" };
}
}
实现test的类:
package com.dvs.biz.dao.ibatis;
import java.util.List;
import org.junit.Before;
import org.junit.Test;
import com.dvs.biz.dao.UserDAO;
import com.dvs.biz.model.User;
import com.dvs.common.dao.ibatis.BaseDAOTestCase;
/**
*
* Now, Junit 3.8.1 version.
*
* But I hope everyone can also follow Junit4 coding style
*
*/
public class UserDAOIbatisTest extends BaseDAOTestCase {
private UserDAO userDao;
private User user;
private Integer pk;
private Integer pk2 = new Integer(1137799366);
public void setUserDAO(UserDAO userDao) {
this.userDao = userDao;
}
public UserDAOIbatisTest() {
pk = 12345678;
user = new User();
user.setAddress("aa");
user.setAge(12);
user.setPassword("aa");
user.setPk(pk);
user.setUsername("aa");
}
@Before
public void init() {
}
@Test
public void testGetList() {
try {
List list = userDao.getList();
User user1 = (User) list.get(0);
assertNotNull(user1.getPk());
} catch (Exception e) {
e.printStackTrace();
}
}
}
这个东西特别奇怪,spring2.5已经明确说了支持junit 4.4, 可是这个类里面写的 @Before, @Test就是没有作用。在spring中文论坛也问了,目前还没有反应呢。!!!
我查了spring的源代:
我的类叫BaseTest
extends AbstractTransactionalDataSourceSpringContextTests
extends AbstractTransactionalSpringContextTests
extends AbstractDependencyInjectionSpringContextTests
extends AbstractSingleSpringContextTests
extends AbstractSpringContextTests
extends ConditionalTestCase
extends TestCase
----------------
下边是ConditionalTestCase类的开头。
package org.springframework.test;
import junit.framework.TestCase;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
/**
* Superclass for JUnit 3.8 based tests that allows conditional test execution
* at the individual test method level. The
* {@link #isDisabledInThisEnvironment(String) isDisabledInThisEnvironment()}
* method is invoked before the execution of each test method. Subclasses can
* override that method to return whether or not the given test should be
* executed. Note that the tests will still appear to have executed and passed;
* however, log output will show that the test was not executed.
*
* @author Rod Johnson
* @since 2.0
* @see #isDisabledInThisEnvironment
*/
public abstract class ConditionalTestCase extends TestCase {
===================
上面写着,Superclass for JUnit 3.8 based tests 。请问这个是什么问题啊,是bug吗?还是怎么回事!!
我的在程序里的junit4.4规范代码运行不了,3.8规范的代码是OK.
--------------------------------------------------------------------------------------------------------
自己回复一下吧,找到解决办法了。
spirng2.5不用上面的类了,按下以下的形式,可以做junit4.4的单元测试了。
package com.dvs.common.dao.ibatis;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.transaction.TransactionConfiguration;
import org.springframework.transaction.annotation.Transactional;
/**
*
* @author Conan
*
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:/test-*-beans.xml" })
@TransactionConfiguration(transactionManager = "txManager", defaultRollback = true)
@Transactional
public class BaseDAOTestCaseJunit44 {
}
还有一个是子类:
package com.dvs.biz.dao.ibatis;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import java.util.List;
import org.junit.Before;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import com.dvs.biz.dao.UserDAO;
import com.dvs.biz.model.User;
import com.dvs.common.dao.ibatis.BaseDAOTestCaseJunit44;
/**
*
* @author Conan
*
*/
public class UserDAOIbatisTest extends BaseDAOTestCaseJunit44{
private UserDAO userDao;
private User user;
private Integer pk;
private Integer pk2 = new Integer(123);
@Autowired
public void setUserDAO(UserDAO userDao) {
this.userDao = userDao;
}
public UserDAOIbatisTest() {
pk = 1212;
user = new User();
user.setAddress("aa");
user.setAge(12);
user.setPassword("aa");
user.setPk(pk);
user.setUsername("12");
}
@Before
public void init() {
}
@Test
public void getList() {
try {
List list = userDao.getList();
User user1 = (User) list.get(0);
assertNotNull(user1.getPk());
} catch (Exception e) {
e.printStackTrace();
}
}
}
这样子就完成了,从Junit3.8向Junit4.4的转变。
发表评论
-
OncePerRequestFilter
2010-07-13 15:12 2141每一次请求执行一次的过滤器 import org.spri ... -
Spring文件资源操作和Web相关工具类盘点
2010-07-13 14:57 918Spring 不但提供了一个功能全面的应用开发框架,本身还拥有 ... -
Spring入门(07-02)-Spring的事务-xml配置
2009-09-20 12:06 1062配置文件: <!-- 配置事务管理器 --> & ... -
Spring入门(07-01)-Spring的事务-注解方式
2009-09-20 11:40 3634用 spring 事务管理器,由spring来负责数据库的打 ... -
Spring入门(06)-Spring的AOP
2009-09-16 19:13 981一.注解方式 打开注解<aop:scoped-prox ... -
Spring入门(04)-依赖注入的三种方法
2009-09-16 14:43 12201.使用构造器 private PersonDao pe ... -
Spring入门(03)-依赖注入-set方法注入
2009-09-16 11:33 1738对象注入: 方法一 ... -
Spring入门(02)-注入的三种方法
2009-09-16 09:35 9791.类构造器 <bean id="p ... -
Spring入门(01)
2009-09-15 21:41 1062使用Spring的好处: ... -
Quartz任务调度快速入门(1)
2009-05-31 13:18 1564概述 各种企业应用几乎都会碰到任务调度的需求,就拿论坛来说: ... -
spring读applicationContext.xml
2009-05-04 09:38 1329当我把spring的配置文件转移到WEB-INF目录下以后,再 ... -
ssh整合开发
2009-05-03 20:39 13751 加入j2ee的jar包。放入lib中来 (注意,最好把 ... -
startup failed due to previous errors
2009-04-13 17:37 1989在使用SSH添加 <listener> ... -
异常问题
2009-03-31 16:57 7231.java.lang.NoClassDefFoundErro ... -
spring错误
2009-02-10 14:19 989今天看着视频,开始研究spring,在用dom4j读取配置文件 ... -
Spring入门一
2008-11-18 16:41 1104Spring的Ioc设计(BEAN的管理)Spring的AOP ...
相关推荐
在实际开发中,对于SSH框架中的DAO测试,还需要关注事务管理、数据库连接池配置、SQL语句的执行效率等方面。同时,集成测试也是必要的,特别是在涉及多层服务交互时,以确保整个系统的行为符合预期。通过单元测试和...
在Spring框架中,进行Dao层的集成单元测试时,常常会结合Dbunit工具来实现数据库相关的测试。Dbunit是一款强大的Java库,它扩展了JUnit,为数据库提供了结构化数据的导入和导出,使得测试更加方便和可靠。下面将详细...
6. **编写测试**:在测试方法中,使用Spring的`@Autowired`注解注入需要测试的服务或DAO,然后调用其方法进行验证。结合DBUnit,可以确保测试前后数据库状态的一致性。 7. **异常处理和断言**:根据业务需求,使用...
- Spring提供了`AbstractTransactionalDataSourceSpringContextTests`基类,用于创建基于Spring的事务测试环境,方便对整合后的代码进行单元测试。 6. **优点** - **解耦**:通过Spring管理Hibernate的...
内容概要:本文深入剖析了安川MP7系列工业控制系统的关键源码,重点介绍了运动轨迹规划、通信协议处理以及故障处理机制等方面的技术细节。通过对实际代码片段的解读,揭示了该系统在硬件寄存器直接访问、特殊功能码处理等方面的独特之处。同时,文中还分享了一些基于实践经验得出的重要参数设置及其背后的故事,如特定摩擦补偿系数的选择原因等。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是对安川产品有一定了解并希望深入了解其内部工作机制的专业人士。 使用场景及目标:帮助读者掌握安川MP7系列控制器的工作原理,提高对类似系统的维护能力和故障排查效率。对于想要进一步研究或二次开发该系统的开发者来说,也能提供宝贵的参考资料。 其他说明:文章不仅限于理论讲解,还包括了许多来自一线的实际案例和经验教训,使读者能够更好地理解和应用所学知识。
自动化测试与脚本开发_Python3_pynput_键盘鼠标操作录制执行代码生成工具_用于自动化测试_脚本录制_重复操作模拟_宏命令生成_提高工作效率_支持GUI界面_跨平台兼容_
嵌入式八股文面试题库资料知识宝典-深入分析Windows和Linux动态库应用异同.zip
嵌入式八股文面试题库资料知识宝典-C语言总结.zip
内容概要:本文详细探讨了风储直流微电网中母线电压控制的关键技术。首先介绍了风储直流微电网的背景和发展现状,强调了母线电压控制的重要性。接着阐述了永磁风机储能并网技术,解释了永磁风机如何通过直接驱动发电机将风能转化为电能,并确保与电网的同步性和稳定性。然后深入讨论了双闭环控制MPPT技术,这是一种通过内外两个闭环控制系统来实现实时调整发电机运行参数的技术,确保风机始终处于最大功率点附近。最后,文章探讨了储能控制母线电压平衡的方法,即通过储能系统的充放电操作来维持母线电压的稳定。结论部分指出,通过这些技术的有机结合,可以实现对风储直流微电网的有效管理和优化控制。 适合人群:从事新能源技术研发的专业人士、电气工程研究人员、风电系统工程师。 使用场景及目标:适用于希望深入了解风储直流微电网母线电压控制策略的研究人员和技术人员,旨在帮助他们掌握最新的控制技术和方法,以提高系统的稳定性和效率。 其他说明:文章还对未来风储直流微电网的发展进行了展望,指出了智能化和自动化的趋势,以及储能技术的进步对系统性能的影响。
嵌入式八股文面试题库资料知识宝典-C++object-oriented.zip
内容概要:文章详细介绍了HarmonyOS的目录结构及其重要性,从整体框架到核心目录的具体功能进行了全面剖析。HarmonyOS凭借其分布式架构和跨设备协同能力迅速崛起,成为全球操作系统领域的重要力量。文章首先概述了HarmonyOS的背景和发展现状,强调了目录结构对开发的重要性。接着,具体介绍了根目录文件、AppScope、entry和oh_modules等核心目录的功能和作用。例如,AppScope作为全局资源配置中心,存放应用级的配置文件和公共资源;entry目录是应用的核心入口,负责源代码和界面开发。此外,文章还对比了HarmonyOS与Android、iOS目录结构的异同,突出了HarmonyOS的独特优势。最后,通过旅游应用和电商应用的实际案例,展示了HarmonyOS目录结构在资源管理和代码组织方面的应用效果。; 适合人群:具备一定编程基础,尤其是对移动操作系统开发感兴趣的开发者,包括初学者和有一定经验的研发人员。; 使用场景及目标:①帮助开发者快速理解HarmonyOS的目录结构,提高开发效率;②为跨设备应用开发提供理论和技术支持;③通过实际案例学习资源管理和代码组织的最佳实践。; 其他说明:HarmonyOS的目录结构设计简洁明了,模块职责划分明确,有助于开发者更好地管理和组织代码和资源。随着万物互联时代的到来,HarmonyOS有望在开发便利性和生态建设方面取得更大进展,吸引更多开发者加入其生态系统。
内容概要:本文详细介绍了飞轮储能充放电控制的Simulink仿真模型,重点在于采用永磁同步电机的矢量控制和dq轴解耦控制策略。充电时,外环控制转速,内环控制dq轴电流;放电时,外环控制直流母线电压,内环同样控制dq轴电流。文中还讨论了硬件与软件环境的选择,以及仿真模型的调试与运行情况,最终得出该模型具有良好的跟随性能和波形完美度。 适用人群:从事电力电子系统、储能技术和Simulink仿真的研究人员和技术人员。 使用场景及目标:适用于需要对飞轮储能系统进行深入研究和仿真的场合,旨在提高充放电效率和稳定性,满足不同应用场景的需求。 其他说明:该仿真模型已调试完成,可以直接用于进一步的研究和实际应用,为未来的飞轮储能技术研发提供了有价值的参考。
嵌入式八股文面试题库资料知识宝典-北京瑞德方科技.zip
嵌入式八股文面试题库资料知识宝典-同方万维硬件测试工程师.zip
1_15套python PDF格式.zip
内容概要:本文详细介绍了三相三电平整流器的仿真过程及其性能分析。文中首先概述了三相三电平整流器的基本概念及其在电力系统中的重要作用,接着重点探讨了电压电流双闭环控制方式的工作原理和优势,以及SPWM调制技术的具体应用。通过仿真文件展示了整流器在不同条件下的响应情况,验证了这两种技术的有效性和优越性。最后,作者表达了对未来实际应用的期望。 适合人群:从事电力电子研究的技术人员、高校相关专业师生、对电力控制系统感兴趣的工程爱好者。 使用场景及目标:适用于希望深入了解三相三电平整流器工作原理和技术细节的研究人员;目标是在理论基础上掌握电压电流双闭环控制和SPWM调制的实际应用方法。 其他说明:本文提供的仅为仿真文件,未涉及实物实验数据。
嵌入式八股文面试题库资料知识宝典-恒光科技.zip
嵌入式八股文面试题库资料知识宝典-北京天华威视科技有限公司面试题.zip
嵌入式八股文面试题库资料知识宝典-微软研究院笔试题目的答案.zip
Arduino UART实验例程,开发板:正点原子EPS32S3,本人主页有详细实验说明可供参考。