数据自动加载并复用模拟服务测试的方法和装置制造方法及图纸

技术编号:14916253 阅读:102 留言:0更新日期:2017-03-30 05:00
本发明专利技术提供一种数据自动加载并复用模拟服务测试的方法和装置,能够在测试运行时自动加载测试数据;并将模拟构造的服务进行统一管理,以在测试过程中复用;此外,还能实现模拟构造代码和具体的测试代码分离,使测试代码更为简洁。该方法包括:用外部文件配置测试数据;在spring框架中初始化配置mock配置类列表;对所述mock配置类列表中的每个mock配置类进行处理,将用外部文件配置后的测试数据加载到mock配置类的成员变量和方法参数中,通过调用mock配置类中不同的方法生成不同的mock服务;将生成的mock服务注册到spring框架的上下文中进行统一管理以便根据测试需求进行复用。

【技术实现步骤摘要】

本专利技术涉及计算机
,尤其涉及一种数据自动加载并复用模拟服务测试的方法和装置
技术介绍
在软件开发过程中,开发人员需要对开发的功能进行单元测试,也称为白盒测试,通过构造各种数据输入,来验证相应的功能是否正常运行。由于软件开发的复杂性,常常需要调用一些复杂的服务和接口,而这些接口可能配置麻烦,数据不易构造。故而在测试过程中,为了提升效率,构造复杂的输入数据,需要模拟构造(mock,即指如果测试代码依赖于某些服务对象,而这些服务对象在测试时又很难手动创建,那么就用一个虚拟的对象来模拟服务对象的行为进行测试)这些服务和接口来聚焦于核心功能代码的测试。在模拟这些服务和接口的同时,现有的Mockito,easyMock等框架提供了很好的Mock实现;可以对接口、普通JAVA类进行任意的模拟。在白盒测试中如果使用mock方式进行测试,现有的技术是通过生成mock服务对象,然后使用代码来构造测试数据。如图1所示。但是这些框架无法实现自动化加载测试参数、Mock出来的服务无法被统一管理,以及通过spring注入到测试类等。如图2所示。综上所述,现有技术中白盒测试存在如下缺点:1、需要的测试数据无法配置化,需要通过编写代码来手动创建测试数据,测试数据的复用性不高;2、在日常使用的Spring框架中,需要测试的业务类一般是通过注解的方式来进行自动装配的。通过现有技术,无法享用注解这一便捷高效的功能来完成;mock的对象及模拟的响应逻辑,亦无法在其他测试类中进行复用。3、在我们进行测试的业务代码中,需要夹杂为了伪造外部接口及服务而编写新的代码,无法做到只聚焦测试相关功能,代码不够纯粹简洁。
技术实现思路
有鉴于此,本专利技术提供一种数据自动加载并复用模拟服务测试的方法和装置,能够在测试运行时自动加载测试数据;并将模拟构造的服务进行统一管理,以在测试过程中复用;此外,还能实现模拟构造代码和具体的测试代码分离,使测试代码更为简洁。为实现上述目的,根据本专利技术的一个方面,提供了一种数据自动加载并复用模拟服务测试的方法。本专利技术的数据自动加载并复用模拟服务测试的方法包括:用外部文件配置测试数据;在spring框架中初始化配置mock配置类列表;对所述mock配置类列表中的每个mock配置类进行处理,将用外部文件配置后的测试数据加载到mock配置类的成员变量和方法参数中,通过调用mock配置类中不同的方法生成不同的mock服务;将生成的mock服务注册到spring框架的上下文中进行统一管理以便根据测试需求进行复用。可选地,所述用外部文件配置测试数据包括:将测试数据以json格式的文本文件进行存储。可选地,所述将用外部文件配置后的测试数据加载到mock配置类的成员变量和方法参数中包括:通过注解的方式指定json格式文本文件id以读取测试数据文件的内容,并将文件内容转化为java对象加载到mock配置类的成员变量和方法参数中。可选地,所述通过调用mock配置类中不同的方法生成不同的mock服务包括:通过调用mock配置类中不同的方法返回成员变量数据和/或对应的方法参数数据,从而生成不同的mock服务。根据本专利技术的另一方面,提供一种数据自动加载并复用模拟服务测试的装置。本专利技术的数据自动加载并复用模拟服务测试的装置包括:外部配置模块,用于用外部文件配置测试数据;初始化配置模块,用于在spring框架中初始化配置mock配置类列表;mock服务生成模块,用于对所述mock配置类列表中的每个mock配置类进行处理,将用外部文件配置后的测试数据加载到mock配置类的成员变量和方法参数中,通过调用mock配置类中不同的方法生成不同的mock服务;注册模块,用于将生成的mock服务注册到spring框架的上下文中进行统一管理以便根据测试需求进行复用。可选地,所述外部配置模块还用于:将测试数据以json格式的文本文件进行存储。可选地,所述mock服务生成模块还用于:通过注解的方式指定json格式文本文件id以读取测试数据文件的内容,并将文件内容转化为java对象加载到mock配置类的成员变量和方法参数中。可选地,所述mock服务生成模块还用于:通过调用mock配置类中不同的方法返回成员变量数据和/或对应的方法参数数据,从而生成不同的mock服务。根据本专利技术的技术方案,通过利用json格式的文本文件对测试数据进行存储,从而为测试数据的自动加载提供了可能,也有利于对测试数据的随时修改;通过在spring框架中初始化配置mock配置类列表,并对mock配置类列表中的每个mock配置类进行处理,从而能够向初始化配置的mock配置类中通过注解的方式自动加载测试数据;通过调用mock配置类中的不同方法,能够返回mock配置类中的成员变量数据和/或方法参数数据,从而能够生成不同的mock服务;通过将调用方法生成的不同mock服务注入到spring框架的上下文中,从而能够对生成的mock服务进行统一管理,也能够实现测试过程中从spring框架中提供mock服务,并复用mock服务;此外,测试用例只需要关注具体的业务逻辑,而无需在测试用例中进行参数配置及mock需要的模拟服务,从而使测试代码更加简洁。附图说明附图用于更好地理解本专利技术,不构成对本专利技术的不当限定。其中:图1是现有的单元测试开发模式的示意图;图2是现有的单元测试关系图;图3是根据本专利技术实施例的数据自动加载并复用模拟服务测试的方法主要步骤的示意图;图4是根据本专利技术实施例中初始化配置mock配置类列表并处理mock配置类的示意图;图5是根据本专利技术实施例中对每个mock配置类处理的示意图;图6是根据本专利技术实施例中对每个mock配置类生产mock服务的流程图;图7a、7b是根据本专利技术实施例中测试数据自动加载到mock配置类的流程图;图8是利用本专利技术实施例的数据自动加载并复用模拟服务测试的方法进行单元测试的开发模式图;图9是利用本专利技术实施例的数据自动加载并复用模拟服务测试的方法进行单元测试的关系图;图10是根据本专利技术实施例的数据自动加载并复用模拟服务测试的装置主要模块的示意图。具体实施方式以下结合附图对本专利技术的示范性实施例做出说明,其中包括本专利技术实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本专利技术的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。图3是根据本专利技术实施例的数据自动加载并复用模拟服务测试的方法主要步骤的示意图。如图3所示,本专利技术实施例的数据自动加载并复用模拟服务测试的方法主要包括如下步骤:步骤S31:用外部文件配置测试数据。将测试数据进行用外部文件配置化,可以实现无需编写代码来手动创建测试数据,而是通过外部文件的形式进行数据的存储,无需编译,可随时进行编辑修改。在本专利技术的具体实施例中,测试数据以独立的json格式的文本文件进行存储,方便的进行编辑及复制,也方便了数据的共用。在本步骤的用外部文件配置之后,从步骤S32开始在spring框架中构造mock服务。步骤S32:在spring框架中初始化配置mock配置类列表。在spring框本文档来自技高网
...

【技术保护点】
一种数据自动加载并复用模拟服务测试的方法,其特征在于,包括:用外部文件配置测试数据;在spring框架中初始化配置mock配置类列表;对所述mock配置类列表中的每个mock配置类进行处理,将用外部文件配置后的测试数据加载到mock配置类的成员变量和方法参数中,通过调用mock配置类中不同的方法生成不同的mock服务;以及将生成的mock服务注册到spring框架的上下文中进行统一管理以便根据测试需求进行复用。

【技术特征摘要】
1.一种数据自动加载并复用模拟服务测试的方法,其特征在于,包括:用外部文件配置测试数据;在spring框架中初始化配置mock配置类列表;对所述mock配置类列表中的每个mock配置类进行处理,将用外部文件配置后的测试数据加载到mock配置类的成员变量和方法参数中,通过调用mock配置类中不同的方法生成不同的mock服务;以及将生成的mock服务注册到spring框架的上下文中进行统一管理以便根据测试需求进行复用。2.根据权利要求1所述的方法,其特征在于,所述用外部文件配置测试数据包括:将测试数据以json格式的文本文件进行存储。3.根据权利要求2所述的方法,其特征在于,所述将用外部文件配置后的测试数据加载到mock配置类的成员变量和方法参数中包括:通过注解的方式指定json格式文本文件id以读取测试数据文件的内容,并将文件内容转化为java对象加载到mock配置类的成员变量和方法参数中。4.根据权利要求1所述的方法,其特征在于,所述通过调用mock配置类中不同的方法生成不同的mock服务包括:通过调用mock配置类中不同的方法返回成员变量数据和/或对应的方法参数数据,从而生成不同的mock服务。...

【专利技术属性】
技术研发人员:张世彬
申请(专利权)人:北京京东尚科信息技术有限公司北京京东世纪贸易有限公司
类型:发明
国别省市:北京;11

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

1