利用spring-mock进行单元测试的好处我就不多说了,接下来我把亲身经历的利用spring-mock进行DAO及业务层测试的过程写下来,以便大家共同学习。
首先声明我用的框架环境:spring1.2.7+hibernate3.0+jdk1.4.2+junit3.8
示例代码如下:
public abstract class BaseDaoTestCase
extends AbstractTransactionalDataSourceSpringContextTests
{
protected final Log log = LogFactory.getLog(this.getClass());
protected ResourceBundle rb;
protected String[] getConfigLocations() {
setAutowireMode(1);
setDependencyCheck(false);
return (new String[]
{ "classpath*:/applicationContext-resource.xml",
"classpath*:/saps-sapsappmodule-appcontext-dao.xml" });
}
public BaseDaoTestCase() {
String className = this.getClass().getName();
try {
rb = ResourceBundle.getBundle(className);
} catch (MissingResourceException missingresourceexception) {
/* empty */
}
}
protected Object populate(Object obj) throws Exception {
java.util.Map map = new HashMap();
Enumeration keys = rb.getKeys();
while (keys.hasMoreElements()) {
String key = (String) keys.nextElement();
map.put(key, rb.getString(key));
}
BeanUtils.copyProperties(map, obj);
return obj;
}
protected void flush() {
HibernateTemplate hibernateTemplate
= new HibernateTemplate((SessionFactory)
applicationContext
.getBean("sessionFactory"));
hibernateTemplate.flush();
hibernateTemplate.clear();
}
}
public class ISapsAppAssessDAOTest extends BaseDaoTestCase {
private ISapsAppAssessDAO dao;
/**
*
*/
public ISapsAppAssessDAOTest() {
super();
setDefaultRollback(false);
}
/**
* @param dao the dao to set
*/
public void setSapsappmoduleSapsAppAssessDAO(ISapsAppAssessDAO dao) {
this.dao = dao;
}
/**
* {@link cn.ccb.saps.sapsappmodule.dao.ISapsAppAssessDAO#findAll()} 的测试方法。
*/
public void testFindAll() {
List list = dao.findAll();
assertTrue(list.size()==0);
}
/**
* {@link cn.ccb.saps.sapsappmodule.dao.ISapsAppAssessDAO#get(java.io.Serializable)} 的测试方法。
*/
public void testGet() {
SapsAppAssessBO assessBO = dao.get(new Integer(1));
assertNull(assessBO);
}
}
最重要的是这个方法:
protected String[] getConfigLocations() {
setAutowireMode(1);
setDependencyCheck(false);
return (new String[]
{ "classpath*:/applicationContext-resource.xml",
"classpath*:/saps-sapsappmodule-appcontext-dao.xml" });
}
这个方法是加载您的数据库连接及DAO的注入配置文件,如果您想测试您的业务逻辑也可以用这个方法,但是你的测试基类不是继承AbstractTransactionalDataSourceSpringContextTests,而是继承AbstractTransactionalSpringContextTests。
以上是我这次对DAO及业务逻辑的测试的经验总结,个人水平有限,希望大家多多指教。
分享到:
相关推荐
而Spring Mock作为Spring框架的一个重要组成部分,为测试提供了强大的模拟(mocking)能力,帮助开发者在不依赖真实环境的情况下进行单元测试。本文将详细探讨Spring Mock的核心概念、使用方法以及它在实际开发中的...
6. **Test**:测试模块支持Spring应用的单元测试和集成测试,包括对Mock对象的支持。 在"spring-framework-5.2.6.RELEASE/libs"目录下,你可能会找到如下的jar包: - `spring-aop-5.2.6.RELEASE.jar`:包含AOP相关...
在单元测试中,我们的目标是对单个功能或方法进行测试,而不涉及其外部依赖。模拟网络请求可以帮助我们隔离被测试代码,确保测试结果只反映该代码的行为。例如,如果一个方法向服务器发送GET请求获取数据,我们可以...
首先,`spring-test`模块的核心目标是简化Spring应用的测试工作,它提供了对JUnit、TestNG等主流测试框架的集成,使得开发者能够便捷地进行单元测试和集成测试。在`3.2.0.RELEASE`这个版本中,Spring Test进一步增强...
6. **spring-test-4.3.4.RELEASE.jar**:提供了对Spring应用进行单元测试和集成测试的支持,包括TestContext框架、Mock对象和JUnit集成。 7. **jstl-1.2-sources.jar**:JavaServer Pages Standard Tag Library,是...
在SSM环境中,使用Junit4和spring-test库进行单元测试是标准做法。下面将详细解释如何使用这两个库以及所需的jar包。 Junit4是Java领域广泛使用的单元测试框架,它提供了一套丰富的注解,使得编写测试用例变得更加...
本示例“spring-demo15-测试”主要聚焦于Spring框架中的测试部分,通过一系列的实例,深入探讨如何有效地进行Spring应用的单元测试和集成测试。 1. **Spring测试模块** Spring框架提供了内置的测试支持,包括`...
总的来说,"spring-test-3.2.8"和"junit-4.10"是Java开发中的重要测试工具,它们的结合使用能够帮助开发者有效地进行单元测试和集成测试,提高代码质量,降低维护成本。对于任何涉及Spring框架的项目来说,理解和...
单元测试的重要性不言而喻,本文将详细讲解如何在 Spring Boot 中进行单元测试。 Controller 测试 在 Spring Boot 中,Controller 是一个非常重要的组件,负责处理 HTTP 请求。在进行单元测试时,我们可以使用 ...
在测试方面,Spring 提供了 TestContext 框架,支持单元测试和集成测试。通过 @RunWith(SpringJUnit4ClassRunner.class) 和 @ContextConfiguration,可以轻松创建测试环境并注入所需的bean。 总的来说,Spring ...
除此之外,Spring 2.5还强化了测试支持,包括模拟对象(Mock Objects)和单元测试框架的集成,使得测试过程更加便捷。这有助于开发者构建高质量、健壮的应用程序。 总之,Spring Framework 2.5 RC2是Java开发中不可...
幸运的是,通过使用Mock技术,可以模拟Spring容器,从而进行单元测试。 在Spring中,Mock的使用可以模拟Web环境进行单元测试,不需要每一次都需要部署到容器里边。Mock会模拟Web环境,创建ApplicationContext和...
它提供了JUnit集成,支持模拟对象(Mock Objects)和基于HTTP的Web测试客户端,帮助开发者编写单元测试和集成测试,确保代码质量。 在4.3.5.RELEASE版本中,Spring团队修复了一些已知的问题,增强了框架的稳定性和...
7. **测试支持**:Spring 提供了针对Spring应用的单元测试和集成测试框架,包括模拟对象(Mock Objects)和测试上下文框架。这有助于开发者编写可测试的代码。 8. **国际化支持**:Spring 提供了本地化和消息资源...
JUnit 4.4作为最流行的Java单元测试框架,它的引入使得Spring项目的测试工作变得高效且规范。在这个版本中,JUnit增加了对注解测试的支持,如@Test注解可以标记测试方法,@Before和@After用于设置测试前后的环境。...
5. **测试支持**:Spring提供了一系列工具,帮助开发者编写单元测试和集成测试,包括Mock对象、测试注解等。 "spring-framework-reference.pdf"同样是Spring 2.5版本的官方文档,虽然格式不同,但内容基本与CHM文件...
Spring Test模块提供了集成测试的工具,使得开发者能够方便地对Spring应用进行单元测试和集成测试。 1. **Spring Test模块**: Spring Test模块是Spring框架的一部分,它提供了一个统一的测试抽象层,用于测试...
在使用 MyBatis-Plus 进行单元测试时,需要注意以下几点: * 使用内置的 mapper 接口方法,如 selectList 方法来验证数据库操作的正确性。 * 使用条件构造器来构建查询条件,如 QueryWrapper 对象。 * 使用 @Run...
本示例程序是关于"Spring Boot Test"的实践,它展示了如何进行Spring Rest Controller的集成测试和单元测试。 1. **Spring Boot Test模块**: Spring Boot提供了测试支持模块,包含`spring-boot-starter-test`,这...
5. **Test**:测试模块提供了对Spring应用进行单元测试和集成测试的支持,包括Mock对象和测试上下文框架。 在描述中提到的`commons-logging-1.2.jar`,是Apache Commons Logging库的一个版本,它是一个轻量级的日志...