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

实现Unitils对多数据源的支持

阅读更多

目前淘宝共享中心测试的数据准备主要使用Unitils + DBunit来完成,具体实现请参阅:

 

http://teamojiao.iteye.com/blog/456782

 

 文中已经提及和如何实现Uitils对Execl文件的 支持,并指出Unitils暂时无法支持多数据源的不足。在TC读写分离项目的测试中,需要同时往不同的数据   库插入测试数据,为此该问题的存在已经大大的影响了测试效率,因此决定对Unitils进行再次改造,使其能够对多数据源提供良好支持;

·How Unitils works with DBUnit

    我们首先来看下Unitls是如何将数据传递给DBunit的,org.dbunit.operation.DatabaseOperation提供的接口如下:

    public abstract void execute(IDatabaseConnection connection, IDataSet dataSet) throws DatabaseUnitException, SQLException;

   可以看出,Unitils只需要dataSet和相应的connection参数就可以完成数据库的操作,这样我们只需将一个Excel中的内容根据不同的数据源拆分成几个dataSet并配给不同数据源就可以实现对多数据源的需求了。

 


·Excel 文件的拆分

为了把Excel拆分成几个DataSet,我们就得先看下DataSet的结构,DataSet其实只有一个成员变量:ITable[] _tables,因此我们只需将_tables按不同的数据源拆分为几个ITable的数组即可。而为了能将不同的表单按数据源进行,本次做法是在 Excel的各个表单加上标签,即表单名由原来的TableName改为 DatasourceLable.TableName,DatasourceLable与数据源配置一一对应,为了可以兼容以前的用例,也可没有 DatasourceLable,此时使用默认数据源(详见数据源配置)。

 


 

如上标注中,sheet1中的数据将插入默认数据源的TC_BIZ_ORDER表中,sheet2中的数据将插入test标注的数据源的user表中。

·数据源配置

上例中,数据源配置如下:

默认数据源:

         #default datasource
        database.driverClassName=oracle.jdbc.driver.OracleDriver
        database.url=jdbc:oracle:oci:@dev-unittest
        database.userName=tbcenter
        database.password=tbcenter
        database.schemaNames=tbcenter

标注为test的数据源

         test.database.driverClassName=org.gjt.mm.mysql.Driver
        test.database.url=jdbc:mysql://127.0.0.1:3306/test
        test.database.userName=test
        test.database.password=

我们将根据数据源配置文件的配置将所用到的数据源放到一个Datasource Map中,以标注为Key。

接下来只需把DataSet和Datasource一一对应起来传递给DBunit即可实现多数据源的支持了。

一个很土却有效方法,欢迎拍砖。

  • 大小: 20 KB
  • 大小: 24.8 KB
分享到:
评论

相关推荐

    Unitils单元测试

    Unitils的模块化设计是其另一大特点,包括unitils-core(核心模块)、unitils-database(数据库管理)、unitils-DbUnit(DbUnit集成)、unitils-easymock(EasyMock支持)、unitils-inject(对象注入)、unitils-...

    Unitils示例

    在 Unitils 中,EasyMock 提供了对方法调用的模拟,可以模拟方法的返回值、抛出异常等,从而在不依赖实际实现的情况下测试代码逻辑。这有助于编写更简洁、独立的单元测试。 4. **项目结构** - `pom.xml`: Maven 的...

    Unitils教程(介绍Unitils的最佳资料)

    Unitils 还提供了 EasyMock 支持,可以帮助我们使用 EasyMock 库来创建 mock 对象。EasyMock 是一个流行的 mock 库,提供了一些实用的方法来创建 mock 对象。 Assertion Utilities ----------------- Unitils 还...

    Unitils-jar包

    Unitils 测试框架目的是让单元测试变得更加容易和可...支持数据库测试,支持利用Mock 对象 进行测试并提供与Spring 和Hibernate 相集成。Unitils 设计成以一种高度可配置和松散耦 合的方式来添加这些服务到单元测试中

    使用Unitils测试DAO

    Unitils是一个自动化测试框架,它提供了对Spring、Hibernate等流行技术的内置支持,让开发者能够快速编写可维护的测试代码。它包含了一些模块,如数据库测试、ORM测试和依赖注入测试,旨在减少设置和清理测试环境所...

    Unitils-core-3.3.jar

    Unitils-core-3.3的jar包

    unitils-2.2

    除了数据库和Spring,Unitils 还包含了其他模块,如ORM框架测试支持(如Hibernate),数据库模拟,以及对JDBC、JPA等的自动化支持。例如,对于ORM测试,它可以模拟数据库操作,这样即使在没有实际数据库的情况下,也...

    unitils-3.3-with-dependencies.zip

    10. **持久层测试**:支持对实体和会话工厂的验证,确保数据操作的正确性。 这个压缩包中的"unitils-3.3"可能包含了以下文件结构: - `unitils-3.3.jar`:主库文件,包含Unitils的核心功能。 - `unitils-dbunit....

    基于mybatis高级映射多对多查询的实现

    在MyBatis中,处理多对多关系查询是一项常见的任务,尤其在数据模型设计中,很多情况下两个实体之间存在多对多的关系。本篇将详细解释如何使用MyBatis的高级映射来实现多对多查询。 首先,我们来看一个实际场景:...

    Integrete unitils for database(dao) testing

    5. **DAO支持**:Unitils还提供了对各种ORM框架(如Hibernate、JPA)的集成,简化了DAO层的测试。它可以自动管理实体的持久化状态,无需手动调用flush和clear方法。 6. **代码覆盖率**:虽然Unitils本身并不直接...

    Unitils框架与模块扩展

    Unitils构建在DBUnit与EasyMock项目之上并与JUnit和TestNG相结合,支持数据库测试,支持利用mock对象进行测试并提供与Spring和Hibernate相集成。Unitils设计成以一种高度可配置和松散偶合的框架来添加这些服务到单元...

    spock-unitils-0.7-groovy-2.0.zip

    Unitils则是一个专注于简化单元测试的Java库,它提供了诸如数据库和持久层支持等功能。Groovy是Java平台上的动态语言,与Java代码可互操作,其语法简洁,易于编写。 描述中的 "bytesize.zip" 提到了一个用于处理...

    unitils整合dbunit利用excel进行单元测试

    unitils整合dbunit利用excel进行单元测试 包含mock以及整合spring进行测试

    Unitil学习

    它通过提供断言方法、数据库测试、Spring集成、Mock Objects测试支持以及与EasyMock的集成等特性,帮助开发者实现更为高效和可靠的单元测试。这些知识点共同构成了Unitils的核心价值,使得单元测试更加务实和高效。

    对dbunit进行mybatis DAO层Excel单元测试(必看篇)

    接着,使用dbunit来进行单元测试,可以使用Excel文件作为测试数据源。 六、结论 本文围绕对dbunit进行mybatis DAO层Excel单元测试,介绍了相关的知识点和实现方法。Dbunit是一个功能强大且易于使用的数据库单元...

    改资源配准测试

    例如,可能需要重新定义数据源配置,以提高数据库访问的并发性能;或者调整Unitils的数据清理策略,确保测试数据的隔离性;甚至可能需要定制化DBUtils的一些操作,以满足特定的数据库交互需求。 在实际操作中,`...

    junit单元测试jar包集

    它支持多种数据格式(如XML或CSV),使得测试数据的管理更加方便。通过DBUnit,开发者可以确保数据库操作不影响其他测试,提高了测试的隔离性。 **Unitils** 是一个集成了多种测试辅助功能的框架,`unitils-3.3-...

    unitils-selenium:使用 Selenium 测试 Web 应用程序的 Unitils 模块-开源

    Unitils 模块 - 启动 Selenium Web 驱动程序以测试 Web 应用程序的简单方法。

    Spring.3.x企业应用开发实战(完整版).part2

    8.4.3 Spring的数据源实现类 8.5 小结 第9章 Spring的事务管理 9.1 数据库事务基础知识 9.1.1 何为数据库事务 9.1.2 数据并发的问题 9.1.3 数据库锁机制 9.1.4 事务隔离级别 9.1.5 JDBC对事务支持 9.2 ThreadLocal...

Global site tag (gtag.js) - Google Analytics