The invention discloses an automatic generation method and system for unit testing Mock code, and the automatic generation method includes: pre configuring classes and methods that do not need to carry out Mock; scanning the measured items, obtaining the corresponding methods and their dependent classes and methods; determine whether the dependent classes and methods are not required to carry out the Mock If not, the target class and the target method of each Mock are screened and obtained, and the Mock code corresponding to each method is generated and combined into the Mock internal class. This invention has selected the classes and methods that need to carry out Mock. It can classify the Mock code according to the granularity of the test method, reduce the screening time of the Mock code in use, enhance the validity of the automatic generation of the Mock code, and have the function of automatically generating the instance and method calling the Mock code of the level, and reducing the person who implements this function manually. The cost of work improves the efficiency of unit testing.
【技术实现步骤摘要】
单元测试Mock代码的自动生成方法及系统
本专利技术涉及Mock代码
,特别涉及一种单元测试Mock(一种测试方法)代码的自动生成方法及系统。
技术介绍
现有技术中,单元测试Mock代码的自动生成方法是将被测项目对应的所有被测类的依赖进行全量Mock,而实际上许多依赖根本不需要也不适合进行Mock。当测试代码人员编写单元测试时,需要获取当前测试方法的Mock代码,由于现有方法生成的Mock代码是将所有被测类层面的依赖的Mock代码组织在一起,无法精确到被测方法级别的粒度,因此就需要在所有被测类的Mock代码中进行人工筛选,从而降低了编写单元测试的效率;另外,现有技术中自动生成的单元测试Mock代码只能做到被测类级别的Mock代码,无法自动生成实例及方法调用级别Mock代码的功能,即现有的单元测试Mock代码的自动生成方法对于不同实例和同一实例的不同次数的调用无法返回不同的期望值,需要编写测试代码的人员自行实现,从而提高了人工成本。
技术实现思路
本专利技术要解决的技术问题是为了克服现有技术中单元测试Mock代码的自动生成方法存在获取当前测试方法的Mock代码,需要人工筛选从而降低了编写单元测试的效率;同时,无法实现自动生成实例及方法调用级别Mock代码的功能,需要编写测试代码的人员自行实现,从而提高了人工成本等缺陷,目的在于提供一种单元测试Mock代码的自动生成方法及系统。本专利技术是通过下述技术方案来解决上述技术问题:本专利技术提供一种单元测试Mock代码的自动生成方法,所述自动生成方法包括:S1、预先配置不需要进行Mock的类和方法;S2、扫描被测项 ...
【技术保护点】
一种单元测试Mock代码的自动生成方法,其特征在于,所述自动生成方法包括:S1、预先配置不需要进行Mock的类和方法;S2、扫描被测项目,获取所述被测项目对应的被测方法,并获取每个所述被测方法依赖的类和方法;S3、判断每个所述被测方法依赖的类和方法是否属于预先配置的不需要进行Mock的类和方法,在判断为否时,则筛选并得到每个所述被测方法依赖的目标类和目标方法;S4、根据所述目标类和所述目标方法生成与每个所述被测方法对应的Mock代码,并将所述被测方法对应的Mock代码组合成Mock内部类。
【技术特征摘要】
1.一种单元测试Mock代码的自动生成方法,其特征在于,所述自动生成方法包括:S1、预先配置不需要进行Mock的类和方法;S2、扫描被测项目,获取所述被测项目对应的被测方法,并获取每个所述被测方法依赖的类和方法;S3、判断每个所述被测方法依赖的类和方法是否属于预先配置的不需要进行Mock的类和方法,在判断为否时,则筛选并得到每个所述被测方法依赖的目标类和目标方法;S4、根据所述目标类和所述目标方法生成与每个所述被测方法对应的Mock代码,并将所述被测方法对应的Mock代码组合成Mock内部类。2.如权利要求1所述的单元测试Mock代码的自动生成方法,其特征在于,步骤S2具体包括:S21、扫描被测项目,获取所述被测项目的所有的被测类;S22、获取每个所述被测类对应的所有的被测方法;S23、获取每个所述被测方法依赖的所有的类和方法。3.如权利要求2所述的单元测试Mock代码的自动生成方法,其特征在于,步骤S4之后还包括:S5、将同一所述被测类的所有所述被测方法分别对应的Mock内部类组合形成Mock类;S6、根据所述Mock类自动生成对应的Mock类文件。4.如权利要求1所述的单元测试Mock代码的自动生成方法,其特征在于,步骤S4中的所述根据所述目标类和所述目标方法生成与每个所述被测方法对应的Mock代码的步骤具体包括:S41、在每个所述目标类对应的Mock代码中增加用于记录调用次数的字段;S42、在每个所述目标方法中增加map类型的参数;其中,所述map类型的参数的自变量为所述字段的值,因变量为期望返回的Mock值;S43、根据所述字段的值从map类型的参数中获取所述Mock值对应的Mock代码;S44、根据每个所述被测方法依赖的每个所述目标类和每个所述目标方法,获取每个所述被测方法对应的Mock代码。5.如权利要求2所述的单元测试Mock代码的自动生成方法,其特征在于,步骤S23具体包括:通过分析每个所述被测方法的源码或者编译后的字节码,获取每个所述被测方法的方法体内部的所有方法的调用情况,得到所述被测方法依赖的所有类和方法;和/或,步骤S1中的所述不需要进行Mock的类和方法包括:类名、类名的前缀名、方法名、方法名的前缀名和方法名的后缀名中的至少一种。6.一种单元测试Mock代码的自动生成系统,其特征在于,所述自动生成系统包括配置模块、扫描模块、获取模块、判断模块、...
【专利技术属性】
技术研发人员:时宇翔,虞斌,王海兵,
申请(专利权)人:携程旅游网络技术上海有限公司,
类型:发明
国别省市:上海,31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。