单元测试方法、装置、计算机设备及存储介质制造方法及图纸

技术编号:28034745 阅读:18 留言:0更新日期:2021-04-09 23:16
本申请公开了一种单元测试方法、装置、计算机设备及存储介质,属于计算机技术领域。该方法包括:在目标应用程序中确定待进行单元测试的第一程序单元;在该第一程序单元包括的各个目标程序单元中确定第二程序单元,该目标程序单元为该第一程序单元在运行过程中所需调用的程序单元;确定该第二程序单元对应的目标虚拟程序单元,该目标虚拟程序单元用于在单元测试过程中模拟该第二程序单元;利用该目标虚拟程序单元替换该第一程序单元中的该第二程序单元,并在替换后,调用单元测试方法对该第一程序单元进行单元测试。本申请实施例提供的技术方案能够避免单元测试失败。

【技术实现步骤摘要】
单元测试方法、装置、计算机设备及存储介质
本申请涉及计算机
,特别是涉及一种单元测试方法、装置、计算机设备及存储介质。
技术介绍
单元测试指的是对应用程序中的最小可测试的程序单元进行测试的一种软件测试方法,在实际应用中,该最小可测试的程序单元可以为函数、类等。在实际应用中,应用程序中的程序单元在运行过程中往往需要调用其他的程序单元,因此,单元测试必须考虑这种调用关系,为此,在一些测试场景中,可以在单元测试的过程中创建虚拟程序单元,以利用创建的虚拟程序单元来模拟被测试程序单元需要调用的程序单元,从而基于被测试程序单元对虚拟程序单元的调用来完成单元测试。然而,在一些软件框架中,应用程序中程序单元所需调用的程序单元往往是在应用程序启动的过程中自动创建的,而虚拟程序单元是在单元测试程序启动的过程中创建的。受创建先后顺序的影响,很可能出现被测试程序单元不对虚拟程序单元进行调用,而对在应用程序启动过程中自动创建的程序单元进行调用的情况,发生这种情况,就会导致单元测试失败。
技术实现思路
基于此,本申请实施例提供了一种单元测试方法、装置、计算机设备及存储介质,可以避免单元测试失败。第一方面,提供了一种单元测试方法,该方法包括:在目标应用程序中确定待进行单元测试的第一程序单元;在该第一程序单元包括的各个目标程序单元中确定第二程序单元,该目标程序单元为该第一程序单元在运行过程中所需调用的程序单元;确定该第二程序单元对应的目标虚拟程序单元,该目标虚拟程序单元用于在单元测试过程中模拟该第二程序单元;利用该目标虚拟程序单元替换该第一程序单元中的该第二程序单元,并在替换后,调用单元测试方法对该第一程序单元进行单元测试。在其中一个实施例中,在该第一程序单元包括的各个目标程序单元中确定第二程序单元,包括:获取该第一程序单元对应的测试模拟程序单元标识集,该测试模拟程序单元标识集包括需要在单元测试过程中被模拟的至少一个目标程序单元的标识;根据该测试模拟程序单元标识集在该第一程序单元包括的各个目标程序单元中确定该第二程序单元。在其中一个实施例中,确定该第二程序单元对应的目标虚拟程序单元,包括:根据目标标记符在上下文中查找带有该目标标记符的虚拟程序单元;将带有该目标标记符的虚拟程序单元作为该目标虚拟程序单元。在其中一个实施例中,该第二程序单元为多个,该目标虚拟程序单元为多个,利用该目标虚拟程序单元替换该第一程序单元中的该第二程序单元,包括:对于各第二程序单元,从多个目标虚拟程序单元中确定所带目标标记符与该第二程序单元匹配的目标虚拟程序单元,并利用确定的该目标虚拟程序单元替换该第二程序单元。在其中一个实施例中,在该第一程序单元包括的各个目标程序单元中确定第二程序单元,包括:在上下文中查找虚拟程序单元,并获取查找到的虚拟程序单元的类型;根据查找到的虚拟程序单元的类型,在该第一程序单元包括的各个目标程序单元中查找该第二程序单元,其中,该第二程序单元的类型与查找到的任一虚拟程序单元的类型相同。在其中一个实施例中,确定该第二程序单元对应的目标虚拟程序单元,包括:将查找到的虚拟程序单元中类型与该第二程序单元的类型相同的虚拟程序单元作为该目标程序单元。在其中一个实施例中,该第一程序单元和该目标程序单元均为JAVAbean,该目标虚拟程序单元为Mockbean。第二方面,提供了一种单元测试装置,该装置包括:第一确定模块,用于在目标应用程序中确定待进行单元测试的第一程序单元;第二确定模块,用于在该第一程序单元包括的各个目标程序单元中确定第二程序单元,该目标程序单元为该第一程序单元在运行过程中所需调用的程序单元;第三确定模块,用于确定该第二程序单元对应的目标虚拟程序单元,该目标虚拟程序单元用于在单元测试过程中模拟该第二程序单元;替换模块,用于利用该目标虚拟程序单元替换该第一程序单元中的该第二程序单元;测试模块,用于在替换后,调用单元测试方法对该第一程序单元进行单元测试。在其中一个实施例中,该第二确定模块,具体用于:获取该第一程序单元对应的测试模拟程序单元标识集,该测试模拟程序单元标识集包括需要在单元测试过程中被模拟的至少一个目标程序单元的标识;根据该测试模拟程序单元标识集在该第一程序单元包括的各个目标程序单元中确定该第二程序单元。在其中一个实施例中,该第三确定模块,具体用于:根据目标标记符在上下文中查找带有该目标标记符的虚拟程序单元;将带有该目标标记符的虚拟程序单元作为该目标虚拟程序单元。在其中一个实施例中,该第二程序单元为多个,该目标虚拟程序单元为多个,该替换模块,具体用于:对于各第二程序单元,从多个目标虚拟程序单元中确定所带目标标记符与该第二程序单元匹配的目标虚拟程序单元,并利用确定的该目标虚拟程序单元替换该第二程序单元。在其中一个实施例中,该第二确定模块,具体用于:在上下文中查找虚拟程序单元,并获取查找到的虚拟程序单元的类型;根据查找到的虚拟程序单元的类型,在该第一程序单元包括的各个目标程序单元中查找该第二程序单元,其中,该第二程序单元的类型与查找到的任一虚拟程序单元的类型相同。在其中一个实施例中,该第三确定模块,具体用于:将查找到的虚拟程序单元中类型与该第二程序单元的类型相同的虚拟程序单元作为该目标程序单元。在其中一个实施例中,该第一程序单元和该目标程序单元均为JAVAbean,该目标虚拟程序单元为Mockbean。第三方面,提供了一种计算机设备,包括处理器和存储器,该存储器中存储有计算机程序,该处理器执行该计算机程序时实现如上述第一方面该的单元测试方法。第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述第一方面该的单元测试方法。本申请实施例提供的技术方案带来的有益效果至少包括:通过在目标应用程序中确定待进行单元测试的第一程序单元,在该第一程序单元包括的各个目标程序单元中确定第二程序单元,其中,目标程序单元为第一程序单元在运行过程中所需调用的程序单元,在确定第二程序单元之后,可以确定该第二程序单元对应的目标虚拟程序单元,该目标虚拟程序单元用于在单元测试过程中模拟第二程序单元,而后,利用该目标虚拟程序单元替换第一程序单元中的第二程序单元,并在替换后,调用单元测试方法对第一程序单元进行单元测试,由于在单元测试之前,已经利用目标模拟程序单元替换第一程序单元中的第二程序单元,因此,无论第二程序单元和目标虚拟程序单元的创建先后顺序为何,都不会影响在单元测试过程中第一程序单元对目标虚拟程序单元的调用,这样,就可以避免第一程序单元在单元测试过程中不对目标虚拟程序单元进行调用,而对第二程序单元进行调用的情况,继而可以避免单元测试失败。附图说明图1为本申请实施例提供的一种单元测试方法的流程图;图2为本申请实施例提供的一种示例性地在第一程序单元包括的各个目标程序本文档来自技高网...

【技术保护点】
1.一种单元测试方法,其特征在于,所述方法包括:/n在目标应用程序中确定待进行单元测试的第一程序单元;/n在所述第一程序单元包括的各个目标程序单元中确定第二程序单元,所述目标程序单元为所述第一程序单元在运行过程中所需调用的程序单元;/n确定所述第二程序单元对应的目标虚拟程序单元,所述目标虚拟程序单元用于在单元测试过程中模拟所述第二程序单元;/n利用所述目标虚拟程序单元替换所述第一程序单元中的所述第二程序单元,并在替换后,调用单元测试方法对所述第一程序单元进行单元测试。/n

【技术特征摘要】
1.一种单元测试方法,其特征在于,所述方法包括:
在目标应用程序中确定待进行单元测试的第一程序单元;
在所述第一程序单元包括的各个目标程序单元中确定第二程序单元,所述目标程序单元为所述第一程序单元在运行过程中所需调用的程序单元;
确定所述第二程序单元对应的目标虚拟程序单元,所述目标虚拟程序单元用于在单元测试过程中模拟所述第二程序单元;
利用所述目标虚拟程序单元替换所述第一程序单元中的所述第二程序单元,并在替换后,调用单元测试方法对所述第一程序单元进行单元测试。


2.根据权利要求1所述的方法,其特征在于,所述在所述第一程序单元包括的各个目标程序单元中确定第二程序单元,包括:
获取所述第一程序单元对应的测试模拟程序单元标识集,所述测试模拟程序单元标识集包括需要在单元测试过程中被模拟的至少一个目标程序单元的标识;
根据所述测试模拟程序单元标识集在所述第一程序单元包括的各个目标程序单元中确定所述第二程序单元。


3.根据权利要求1所述的方法,其特征在于,所述确定所述第二程序单元对应的目标虚拟程序单元,包括:
根据目标标记符在上下文中查找带有所述目标标记符的虚拟程序单元;
将带有所述目标标记符的虚拟程序单元作为所述目标虚拟程序单元。


4.根据权利要求3所述的方法,其特征在于,所述第二程序单元为多个,所述目标虚拟程序单元为多个,所述利用所述目标虚拟程序单元替换所述第一程序单元中的所述第二程序单元,包括:
对于各所述第二程序单元,从多个所述目标虚拟程序单元中确定所带目标标记符与所述第二程序单元匹配的目标虚拟程序单元,并利用确定的所述目标虚拟程序单元替换所述第二程序单元。


5.根据权利要求1所述的方法,其特征在于,所述在所述第一程序单元包括的各个目标程序...

【专利技术属性】
技术研发人员:蔡鹏
申请(专利权)人:广州华多网络科技有限公司
类型:发明
国别省市:广东;44

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

1