`

spring-mock 进行单元测试

阅读更多
利用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.jar

    而Spring Mock作为Spring框架的一个重要组成部分,为测试提供了强大的模拟(mocking)能力,帮助开发者在不依赖真实环境的情况下进行单元测试。本文将详细探讨Spring Mock的核心概念、使用方法以及它在实际开发中的...

    Spring框架(spring-framework-5.2.6.RELEASE)的jar包

    6. **Test**:测试模块支持Spring应用的单元测试和集成测试,包括对Mock对象的支持。 在"spring-framework-5.2.6.RELEASE/libs"目录下,你可能会找到如下的jar包: - `spring-aop-5.2.6.RELEASE.jar`:包含AOP相关...

    单元测试高级特性-mock模拟网络请求

    在单元测试中,我们的目标是对单个功能或方法进行测试,而不涉及其外部依赖。模拟网络请求可以帮助我们隔离被测试代码,确保测试结果只反映该代码的行为。例如,如果一个方法向服务器发送GET请求获取数据,我们可以...

    spring-test-3.2.0.RELEASE.jar

    首先,`spring-test`模块的核心目标是简化Spring应用的测试工作,它提供了对JUnit、TestNG等主流测试框架的集成,使得开发者能够便捷地进行单元测试和集成测试。在`3.2.0.RELEASE`这个版本中,Spring Test进一步增强...

    spring-mvc开发所有jar包【4.3.4】

    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包

    在SSM环境中,使用Junit4和spring-test库进行单元测试是标准做法。下面将详细解释如何使用这两个库以及所需的jar包。 Junit4是Java领域广泛使用的单元测试框架,它提供了一套丰富的注解,使得编写测试用例变得更加...

    spring-demo15-测试.zip

    本示例“spring-demo15-测试”主要聚焦于Spring框架中的测试部分,通过一系列的实例,深入探讨如何有效地进行Spring应用的单元测试和集成测试。 1. **Spring测试模块** Spring框架提供了内置的测试支持,包括`...

    spring-text-3.2.8和junit4.10

    总的来说,"spring-test-3.2.8"和"junit-4.10"是Java开发中的重要测试工具,它们的结合使用能够帮助开发者有效地进行单元测试和集成测试,提高代码质量,降低维护成本。对于任何涉及Spring框架的项目来说,理解和...

    30-Spring Boot单元测试1

    单元测试的重要性不言而喻,本文将详细讲解如何在 Spring Boot 中进行单元测试。 Controller 测试 在 Spring Boot 中,Controller 是一个非常重要的组件,负责处理 HTTP 请求。在进行单元测试时,我们可以使用 ...

    spring-framework-2.0.8.zip

    在测试方面,Spring 提供了 TestContext 框架,支持单元测试和集成测试。通过 @RunWith(SpringJUnit4ClassRunner.class) 和 @ContextConfiguration,可以轻松创建测试环境并注入所需的bean。 总的来说,Spring ...

    spring-framework-2.5-rc2-with-dependencies\spring-framework-2.5-rc2\spring-framework-2.5-rc2docs

    除此之外,Spring 2.5还强化了测试支持,包括模拟对象(Mock Objects)和单元测试框架的集成,使得测试过程更加便捷。这有助于开发者构建高质量、健壮的应用程序。 总之,Spring Framework 2.5 RC2是Java开发中不可...

    java单元测试 spring mock的使用

    幸运的是,通过使用Mock技术,可以模拟Spring容器,从而进行单元测试。 在Spring中,Mock的使用可以模拟Web环境进行单元测试,不需要每一次都需要部署到容器里边。Mock会模拟Web环境,创建ApplicationContext和...

    spring-framework-4.3.5.RELEASE-dist.zip 下载

    它提供了JUnit集成,支持模拟对象(Mock Objects)和基于HTTP的Web测试客户端,帮助开发者编写单元测试和集成测试,确保代码质量。 在4.3.5.RELEASE版本中,Spring团队修复了一些已知的问题,增强了框架的稳定性和...

    spring-framework-3.2.0.RELEASE-dependencies框架依赖包

    7. **测试支持**:Spring 提供了针对Spring应用的单元测试和集成测试框架,包括模拟对象(Mock Objects)和测试上下文框架。这有助于开发者编写可测试的代码。 8. **国际化支持**:Spring 提供了本地化和消息资源...

    spring-framework-2.5.6 (含junit-4.4.jar、spring-test.jar)

    JUnit 4.4作为最流行的Java单元测试框架,它的引入使得Spring项目的测试工作变得高效且规范。在这个版本中,JUnit增加了对注解测试的支持,如@Test注解可以标记测试方法,@Before和@After用于设置测试前后的环境。...

    Spring文档:Spring-Reference_2.5_zh_CN.chm、Spring-Reference_2.5_zh_CN.chm

    5. **测试支持**:Spring提供了一系列工具,帮助开发者编写单元测试和集成测试,包括Mock对象、测试注解等。 "spring-framework-reference.pdf"同样是Spring 2.5版本的官方文档,虽然格式不同,但内容基本与CHM文件...

    spring-test.zip

    Spring Test模块提供了集成测试的工具,使得开发者能够方便地对Spring应用进行单元测试和集成测试。 1. **Spring Test模块**: Spring Test模块是Spring框架的一部分,它提供了一个统一的测试抽象层,用于测试...

    MyBatis-Plus 如何单元测试的实现

    在使用 MyBatis-Plus 进行单元测试时,需要注意以下几点: * 使用内置的 mapper 接口方法,如 selectList 方法来验证数据库操作的正确性。 * 使用条件构造器来构建查询条件,如 QueryWrapper 对象。 * 使用 @Run...

    spring-boot-test示例程序

    本示例程序是关于"Spring Boot Test"的实践,它展示了如何进行Spring Rest Controller的集成测试和单元测试。 1. **Spring Boot Test模块**: Spring Boot提供了测试支持模块,包含`spring-boot-starter-test`,这...

    Spring-5.0.6版本jar包

    5. **Test**:测试模块提供了对Spring应用进行单元测试和集成测试的支持,包括Mock对象和测试上下文框架。 在描述中提到的`commons-logging-1.2.jar`,是Apache Commons Logging库的一个版本,它是一个轻量级的日志...

Global site tag (gtag.js) - Google Analytics