System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术实施例涉及计算机,尤其涉及一种单元测试方法、装置、电子设备及存储介质。
技术介绍
1、单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。对于采用java语言开发的项目,通常会针对需要进行测试的类展开单元测试。相关技术中,通常是使用由开发者编写的测试用例对需要测试的类进行单元测试。然而,这种测试方式存在测试成本较高以及测试效率较低的技术问题,从而影响软件开发效率。
技术实现思路
1、本专利技术提供了一种单元测试方法、装置、电子设备及存储介质,以实现对需要进行测试的类进行自动化的单元测试,降低了测试成本,提升了测试效率,进一步提升软件开发效率。
2、根据本专利技术的一方面,提供了一种单元测试方法,该方法包括:
3、响应于单元测试指令,确定与所述单元测试指令对应的类对象,其中,所述类对象为由目标测试类创建出来的对象;
4、基于所述类对象,确定所述目标测试类中定义的至少一个候选测试方法,从所述至少一个候选测试方法中选择与所述测试指令对应的目标测试方法;
5、基于所述目标测试方法,生成与所述单元测试指令对应的测试用例;
6、在获取到针对所述测试用例输入的测试输入数据后,基于所述测试用例和所述测试输入数据,对所述目标测试类的功能进行测试。
7、可选地,所述基于所述类对象,确定所述目标测试类中定义的至少一个候选测试方法,包括:基于所述类对象,采用反射机制加载所述目标测试类的class
8、可选地,所述基于所述目标测试方法,生成与所述单元测试指令对应的测试用例,包括:在所述目标测试方法的数量为多个的情况下,确定各所述目标测试方法之间的方法调用关系链;基于所述方法调用关系链,生成与所述单元测试指令对应的测试用例。
9、可选地,所述方法还包括:针对每个目标测试方法,将所述目标测试方法和与所述目标测试方法对应的方法调用关系链,并存储至预设xml文件中。
10、可选地,所述方法还包括:在所述目标测试方法的方法体中存在除所述目标测试类之外的其他类中定义的关联方法的情况下,确定与所述关联方法对应的预设虚拟对象,其中,所述预设虚拟对象具有所述关联方法的功能;所述基于所述测试用例和所述测试输入数据,对所述目标测试类的功能进行测试,包括:基于所述测试用例、所述测试输入数据和所述预设虚拟对象,对所述目标测试类的功能进行测试。
11、可选地,在对所述目标测试类的功能进行测试之后,所述方法还包括:得到与所述测试输入数据对应的测试输出结果;获取针对所述测试用例设置的与所述测试输入数据对应的期望输出结果;基于所述测试输出结果和所述期望输出结果,对所述目标测试类的功能进行验证,并将验证结果作为针对所述目标测试类的单元测试结果。
12、可选地,所述方法还包括:基于所述类对象,确定所述目标测试类中定义的至少一个成员变量;将所述至少一个成员变量和所述至少一个候选测试方法,作为所述目标测试类的结构信息,保存至预先定义的用于保存目标测试类的类结构体中。
13、根据本专利技术的另一方面,提供了一种单元测试装置。该装置包括:
14、类对象确定模块,用于响应于单元测试指令,确定与所述单元测试指令对应的类对象,其中,所述类对象为由目标测试类创建出来的对象;
15、测试方法确定模块,用于基于所述类对象,确定所述目标测试类中定义的至少一个候选测试方法,从所述至少一个候选测试方法中选择与所述测试指令对应的目标测试方法;
16、测试用例生成模块,用于基于所述目标测试方法,生成与所述单元测试指令对应的测试用例;
17、单元测试模块,用于在获取到针对所述测试用例输入的测试输入数据后,基于所述测试用例和所述测试输入数据,对所述目标测试类的功能进行测试。
18、根据本专利技术的另一方面,提供了一种电子设备,所述电子设备包括:
19、至少一个处理器;以及
20、与所述至少一个处理器通信连接的存储器;其中,
21、所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本专利技术任一实施例所述的单元测试方法。
22、根据本专利技术的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本专利技术任一实施例所述的单元测试方法。
23、本专利技术实施例的技术方案,在接收到单元测试指令后,通过确定与所述单元测试指令对应的类对象,其中,所述类对象为由目标测试类创建出来的对象;基于所述类对象,确定所述目标测试类中定义的至少一个候选测试方法,从所述至少一个候选测试方法中选择与所述测试指令对应的目标测试方法;基于所述目标测试方法,生成与所述单元测试指令对应的测试用例;在获取到针对所述测试用例输入的测试输入数据后,基于所述测试用例和所述测试输入数据,对所述目标测试类的功能进行测试。本专利技术实施例的技术方案,解决了相关技术单元测试存在测试成本较高以及测试效率较低的技术问题,实现了对需要进行测试的类进行自动化的单元测试,降低了测试成本,提升了测试效率,进一步提升软件开发效率。
24、应当理解,本部分所描述的内容并非旨在标识本专利技术的实施例的关键或重要特征,也不用于限制本专利技术的范围。本专利技术的其它特征将通过以下的说明书而变得容易理解。
本文档来自技高网...【技术保护点】
1.一种单元测试方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述基于所述类对象,确定所述目标测试类中定义的至少一个候选测试方法,包括:
3.根据权利要求1所述的方法,其特征在于,所述基于所述目标测试方法,生成与所述单元测试指令对应的测试用例,包括:
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
6.根据权利要求1所述的方法,其特征在于,在对所述目标测试类的功能进行测试之后,所述方法还包括:
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
8.一种单元测试装置,其特征在于,包括:
9.一种电子设备,其特征在于,所述电子设备包括:
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-7中任一项所述的单元测试方法。
【技术特征摘要】
1.一种单元测试方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述基于所述类对象,确定所述目标测试类中定义的至少一个候选测试方法,包括:
3.根据权利要求1所述的方法,其特征在于,所述基于所述目标测试方法,生成与所述单元测试指令对应的测试用例,包括:
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
6...
【专利技术属性】
技术研发人员:王泽文,
申请(专利权)人:中国农业银行股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。