一种单元测试系统及测试方法技术方案

技术编号:22218569 阅读:23 留言:0更新日期:2019-09-30 01:06
本发明专利技术公开了一种单元测试系统及测试方法,该系统包括监听器、场景构造层、数据源适配层、单元测试模块、业务数据库以及场景库。场景构造层可以实现对单元测试场景的规范化管理,数据源适配层中的不同数据源格式的数据源适配器可以使得系统能够适配多种数据源格式,并将其转化成统一的数据格式。从而解决现有技术中单测场景无法规范化、无法适配多种数据源格式的问题。单元测试模块根据业务数据库中存储的场景名称对应的场景数据对待测单元进行测试保证了独立、轻量的软件开发工具包对原单测逻辑无侵入。

A Unit Testing System and Testing Method

【技术实现步骤摘要】
一种单元测试系统及测试方法
本专利技术涉及单元测试
,尤其涉及一种单元测试系统及测试方法。
技术介绍
随着计算机技术的发展,越来越多的技术(如大数据、分布式、区块链(Blockchain)、人工智能等)应用在金融领域,传统金融业正在逐步向金融科技(Fintech)转变,单元测试技术也不例外,但由于金融、支付行业的安全性、实时性要求,也对技术提出的更高的要求。目前一个典型的单元测试过程可以分为以下步骤:数据加载、单测场景初始化:该步骤用于从数据源加载业务数据,构造需要的业务场景。执行待测业务逻辑:实际要被测试的代码逻辑。断言测试:验证业务逻辑的返回结果是否正确。事务回滚:恢复到本次单测开始前的数据环境,供下一个单测案例使用。现有技术单测过程主要存在以下不足:1、对数据加载的支持不足。数据的来源可能包括Excel文件,csv文件,JPA对象等等,这些不同数据源间的差异都需要开发者在业务代码中做适配,造成的后果不仅是业务逻辑与文件处理逻辑混杂在一块,并且会代码冗余度高,不同开发者所编写的文件处理逻辑往往不一致,进而又降低代码的规范性。2、单测场景的管理。单测过程缺少对单测场景的规范化管理,单测场景的规范化取决于开发者的自觉性。
技术实现思路
本专利技术实施例提供一种单元测试系统及测试方法,用以解决现有技术中单测场景无法规范化、无法适配多种数据源格式的问题。第一方面,本专利技术实施例提供一种单元测试系统,包括监听器、场景构造层、数据源适配层、单元测试模块、业务数据库以及场景库;监听器用于获取场景名称,并将所述场景名称发送至场景构造层;场景构造层用于根据场景名称从数据源适配层中确定场景名称对应的数据源适配器,并根据场景名称对应的数据源适配器从场景库中读取场景名称对应的场景数据;对场景名称对应的场景数据进行加工处理;将加工处理后的场景名称对应的场景数据发送给业务数据库进行存储;单元测试模块用于根据业务数据库中存储的场景名称对应的场景数据,对待测单元进行测试。上述方案,提供了一个规范化的单测场景管理及应用系统。场景构造层可以实现对单元测试场景的规范化管理,数据源适配层中的不同数据源格式的数据源适配器可以使得系统能够适配多种数据源格式,并将其转化成统一的数据格式。从而解决现有技术中单测场景无法规范化、无法适配多种数据源格式的问题。单元测试模块根据业务数据库中存储的场景名称对应的场景数据对待测单元进行测试保证了独立、轻量的软件开发工具包对原单测逻辑无侵入。可选的,所述场景构造层包括场景构造器、场景解析器和数据加工链路;所述场景构造器用于将所述监听器发送的所述场景名称发送给所述场景解析器;所述场景解析器用于根据所述场景名称,从所述数据源适配层中确定所述场景名称对应的数据源适配器,并根据所述场景名称对应的数据源适配器从所述场景库中读取所述场景名称对应的场景数据,将读取到的所述场景名称对应的场景数据发送给所述数据加工链路;所述数据加工链路用于对所述场景名称对应的场景数据进行加工处理;并将加工处理后的所述场景名称对应的场景数据发送给所述业务数据库进行存储。上述方案,场景构造层可根据不同的场景名称进行造数使得单测开发者在进行单测过程时操作简便,单测开发者需要关注的仅仅是单测启动-运行-完成这个步骤,至于复杂的场景构造过程和场景回滚过程全部由本专利技术自动完成以此保证单测开发者可以聚焦于业务逻辑的正确性,无需分心于如何创建所需的场景其中系统提供了一个默认的解析器,同时也支持开发者根据业务需要自定义解析器。提高了系统的灵活性和自适应能力。可选的,所述监听器还用于在监听到所述单元测试模块对所述待测单元测试完成后,向所述场景构造层发送数据回滚指令。上述方案,在单测完成后回滚数据库使得系统支持非事务型的回滚操作,从而不影响业务逻辑中的事务。可选的,所述数据加工链路还包括数据清理节点;所述场景构造层还用于在接收到所述数据回滚指令后,通过所述数据加工链路中的数据清理节点对所述业务数据库中的所述场景名称对应的场景数据进行数据回滚。上述方案,数据加工链路由数据加工节点和链路管理器组成,系统提供了多个默认的加工节点,也支持开发者添加自定义的节点,同时可以增加新的加工节点,实现自定义的加工逻辑,具有灵活性。可选的,所述数据清理节点通过逆向数据库操作对所述业务数据库中的所述场景名称对应的场景数据进行数据回滚。上述方案,由于不使用spring的事务注解实现类似的事务功能,清理节点采用逆向操作的方式来恢复数据库状态,使得系统支持非事务型的回滚操作,从而不影响业务逻辑中的事务。可选的,所述数据加工链路对所述场景名称对应的场景数据进行清理、过滤、填充、转换和保存。需要说明的是,数据加工链路中的保存节点可以将构造的场景数据保存为sql文件,也可直接将构造的场景数据保存到指定的数据库中。第二方面,本专利技术实施例提供一种基于上述第一方面的单元测试系统的测试方法,包括:获取场景名称;根据所述场景名称,从所述场景库中读取所述场景名称对应的场景数据,对所述场景名称对应的场景数据进行加工处理;根据加工处理后的所述场景名称对应的场景数据对待测单元进行测试。上述方案,提供了一个规范化的单测场景管理及应用系统,根据加工处理后的场景名称对应的场景数据对待测单元进行测试能够使得系统适配多种数据源格式并将其转化成统一的数据格式。可选的,所述根据所述场景名称,从所述场景库中读取所述场景名称对应的场景数据,包括:根据所述场景名称从所述数据源适配层中确定所述场景名称对应的数据源适配器;根据所述场景名称对应的数据源适配器从所述场景库中读取所述场景名称对应的场景数据。上述方案,通过开发者的注解获取需要加载的场景名称,开发者可以聚焦于业务逻辑的正确性,从而不必考虑如何创建所需场景的过程,简化了开发过程提高了开发效率。可选的,所述对所述场景名称对应的场景数据进行加工处理,包括:对所述场景名称对应的场景数据进行清理、过滤、填充、转换和保存。上述方案,针对不同的场景名称选择不同的场景解析器,将不同格式的数据通过数据源适配器统一成同一格式,使得系统可以扩展新的数据源格式并具有很高的灵活性。系统可以自适应的配合多种场景,从而开发者无需花费更多的精力在如何创建所需场景的过程中。可选的,在所述根据加工处理后的所述场景名称对应的场景数据对待测单元进行测试之后,还包括:在确定对所述待测单元测试完成时,对所述业务数据库中的所述场景名称对应的场景数据进行数据回滚。上述方案,在单测完成后回滚数据库使得系统支持非事务型的回滚操作,从而不影响业务逻辑中的事务。可选的所述对所述业务数据库中的所述场景名称对应的场景数据进行数据回滚,包括:通过逆向数据库操作对所述业务数据库中的所述场景名称对应的场景数据进行数据回滚。上述方案,不同于Spring基于事务的回滚方式,清理节点采用执行逆向操作的方式来恢复数据库状态使得系统支持非事务型回滚操作从而不影响业务逻辑中的事务。第三方面,本专利技术实施例提供一种测试装置,包括:获取单元,获取场景名称;处理单元,根据所述场景名称,从所述场景库中读取所述场景名称对应的场景数据,对所述场景名称对应的场景数据进行加工处理;根据加工处理后的所述场景名称对应的场景数据对待测单元进行测试。可选的,所述处理单元具体用本文档来自技高网...

【技术保护点】
1.一种单元测试系统,其特征在于,包括监听器、场景构造层、数据源适配层、单元测试模块、业务数据库以及场景库;所述监听器用于获取场景名称,并将所述场景名称发送至所述场景构造层;所述场景构造层用于根据所述场景名称从所述数据源适配层中确定所述场景名称对应的数据源适配器,并根据所述场景名称对应的数据源适配器从所述场景库中读取所述场景名称对应的场景数据;对所述场景名称对应的场景数据进行加工处理;将加工处理后的所述场景名称对应的场景数据发送给所述业务数据库进行存储;所述单元测试模块用于根据所述业务数据库中存储的所述场景名称对应的场景数据,对待测单元进行测试。

【技术特征摘要】
1.一种单元测试系统,其特征在于,包括监听器、场景构造层、数据源适配层、单元测试模块、业务数据库以及场景库;所述监听器用于获取场景名称,并将所述场景名称发送至所述场景构造层;所述场景构造层用于根据所述场景名称从所述数据源适配层中确定所述场景名称对应的数据源适配器,并根据所述场景名称对应的数据源适配器从所述场景库中读取所述场景名称对应的场景数据;对所述场景名称对应的场景数据进行加工处理;将加工处理后的所述场景名称对应的场景数据发送给所述业务数据库进行存储;所述单元测试模块用于根据所述业务数据库中存储的所述场景名称对应的场景数据,对待测单元进行测试。2.根据权利要求1所述的系统,其特征在于,所述场景构造层包括场景构造器、场景解析器和数据加工链路;所述场景构造器用于将所述监听器发送的所述场景名称发送给所述场景解析器;所述场景解析器用于根据所述场景名称,从所述数据源适配层中确定所述场景名称对应的数据源适配器,并根据所述场景名称对应的数据源适配器从所述场景库中读取所述场景名称对应的场景数据,将读取到的所述场景名称对应的场景数据发送给所述数据加工链路;所述数据加工链路用于对所述场景名称对应的场景数据进行加工处理;并将加工处理后的所述场景名称对应的场景数据发送给所述业务数据库进行存储。3.根据权利要求2所述的系统,其特征在于,所述监听器还用于在监听到所述单元测试模块对所述待测单元测试完成后,向所述场景构造层发送数据回滚指令。4.根据权利要求2所述的系统,其特征在于,所述数据加工链路还包括数据清理节点;所述场景构造层在接收到所述数据回滚指令后,通过所述数据加工链路中的数据清理节点对所述业务数据库中的所述场景名称对应的场景数据进行数据回滚。5.根据权利要求4所述的系统,其特征在于,所述数据清理节点通过逆向数据库操作对所述业务数据库中的所述场景名称对应的场景数据...

【专利技术属性】
技术研发人员:韦晨曦李懿陈世阳江旻李斌
申请(专利权)人:深圳前海微众银行股份有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1