CN113110982A - 数据访问层验证方法及装置、存储介质及电子装置 - Google Patents
数据访问层验证方法及装置、存储介质及电子装置 Download PDFInfo
- Publication number
- CN113110982A CN113110982A CN202110336722.4A CN202110336722A CN113110982A CN 113110982 A CN113110982 A CN 113110982A CN 202110336722 A CN202110336722 A CN 202110336722A CN 113110982 A CN113110982 A CN 113110982A
- Authority
- CN
- China
- Prior art keywords
- class
- test
- data
- access layer
- service
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000012795 verification Methods 0.000 title claims abstract description 28
- 238000012360 testing method Methods 0.000 claims abstract description 317
- 238000004590 computer program Methods 0.000 claims description 14
- 230000001419 dependent effect Effects 0.000 claims description 8
- 238000004140 cleaning Methods 0.000 claims description 6
- 230000000694 effects Effects 0.000 abstract description 9
- 238000005516 engineering process Methods 0.000 abstract description 6
- 235000010627 Phaseolus vulgaris Nutrition 0.000 description 11
- 244000046052 Phaseolus vulgaris Species 0.000 description 11
- 238000005094 computer simulation Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000013589 supplement Substances 0.000 description 2
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提供了一种数据访问层验证方法及装置、存储介质及电子装置,其中,上述数据访问层验证方法包括:通过精准加载方式获取测试数据,其中,所述测试数据是当前测试类对应的数据库,包括表结构和数据;通过所述精准加载方式获取所述当前测试类的业务类,并对所述业务类进行实例化操作;指示数据访问层通过所述精准加载方式获取所述当前测试类的程序包;根据所述测试数据和进行所述实例化操作后的业务类对获取所述程序包后的数据访问层进行验证。采用上述技术方案,解决了相关技术中,对数据访问层进行验证时,不能兼顾验证效果和外部依赖的问题。
Description
技术领域
本发明涉及通信领域,具体而言,涉及一种数据访问层验证方法及装置、存储介质及电子装置。
背景技术
在各种计算机模型和框架中,都需要对数据访问层进行验证。现有技术通过两种方式对数据访问层进行验证:第一种方式:直接Mock的方式,用一个虚拟的对象(Mock对象),实现数据访问层的测试,可以不依赖外部服务。但是对数据访问层直接Mock出结果,相当于直接忽略了对数据访问层层复杂sql、返回对象内容的验证,上述方式不能对数据访问层进行验证。第二种方式:用内存数据库的方式,替代物理数据库,对数据访问层进行验证。以第二种方式对数据访问层进行验证,结果准确,但是无法解决外部依赖的问题,也就是说,通过第二种方式不能实现对依赖于外部环境的数据访问层进行验证。
针对相关技术中,对数据访问层进行验证时,不能兼顾验证效果和外部依赖的问题,尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种数据访问层验证方法及装置、存储介质及电子装置,以解决相关技术中,对数据访问层进行验证时,不能兼顾验证效果和外部依赖的问题。
根据本发明的一个实施例,提供了一种数据访问层验证方法,包括:通过精准加载方式获取测试数据,其中,所述测试数据是当前测试类对应的数据库,包括表结构和数据;通过所述精准加载方式获取所述当前测试类的业务类,并对所述业务类进行实例化操作;指示数据访问层通过所述精准加载方式获取所述当前测试类的程序包;根据所述测试数据和进行所述实例化操作后的业务类对获取所述程序包后的数据访问层进行验证。
进一步地,通过精准加载方式获取测试数据,包括:获取内存数据库,其中,所述内存数据库是待测测试类对应的数据库,存储的数据包括所述测试数据,所述待测测试类包括所述当前测试类和在所述待测测试类中除所述当前测试类以外的剩余测试类;根据所述当前测试类,通过所述精准加载方式从所述内存数据库中确定所述测试数据。
进一步地,获取所述测试数据之后,所述方法还包括:在所述测试数据中存储了剩余测试类和所述当前测试类都对应的第一表结构和表数据的情况下,对所述测试数据进行清理处理,以使所述测试数据不存储所述第一表结构和表数据;获取所述第一表结构和表数据对应的第二表结构和表数据;对进行所述清理处理后测试数据和所述第二表结构和表数据进行合并处理,得到新的测试数据。
进一步地,根据所述测试数据和进行所述实例化操作后的业务类对获取所述程序包后的数据访问层进行验证之前,所述方法还包括:对所述当前测试类进行解析处理,以确定所述当前测试类对应的加载内容,其中,所述加载内容包括:所述测试数据、所述业务类、所述程序包;获取所述当前测试类对应的加载内容。
进一步地,对所述业务类进行实例化操作,包括:确定所述业务类的类别,其中,所述业务类包括不依赖外部服务的业务类和依赖外部服务的业务类;当所述业务类是不依赖外部服务的业务类时,采用ContextConfigurationzhu注解方式对所述业务类进行实例化操作;当所述业务类是依赖外部服务的业务类时,采用mockbean注解方式对所述业务类进行实例化操作。
进一步地,在指示数据访问层通过所述精准加载方式获取所述当前测试类的程序包之后,所述方法还包括:获取所述数据访问层的反馈信息;根据所述反馈信息对所述数据访问层进行验证。
根据本发明的又一个实施例,还提供了一种数据访问层验证装置,包括:第一加载模块,用于通过精准加载方式获取测试数据,其中,所述测试数据是当前测试类对应的数据库,包括表结构和数据;第二加载模块,用于通过所述精准加载方式获取所述当前测试类的业务类,并对所述业务类进行实例化操作;第三加载模块,用于指示数据访问层通过所述精准加载方式获取所述当前测试类的程序包;验证模块,用于根据所述测试数据和进行所述实例化操作后的业务类对获取所述程序包后的数据访问层进行验证。
进一步地,所述第一加载模块还用于:获取内存数据库,其中,所述内存数据库是待测测试类对应的数据库,存储的数据包括所述测试数据,所述待测测试类包括所述当前测试类和在所述待测测试类中除所述当前测试类以外的剩余测试类;根据所述当前测试类,通过所述精准加载方式从所述内存数据库中确定所述测试数据。
根据本发明的又一个实施例,还提供了一种计算机可读的存储介质,所述计算机可读的存储介质包括存储的程序,其中,所述程序运行时执行以上任一项中所述的方法。
根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行以上任一项中所述的方法。
通过本发明,通过精准加载方式获取测试数据,其中,所述测试数据是当前测试类对应的数据库,包括表结构和数据;通过所述精准加载方式获取所述当前测试类的业务类,并对所述业务类进行实例化操作;指示数据访问层通过所述精准加载方式获取所述当前测试类的程序包;根据所述测试数据和进行所述实例化操作后的业务类对获取所述程序包后的数据访问层进行验证。也就是说,本发明通过精准加载方式获取测试数据、所述当前测试类的业务类和所述当前测试类的程序包,根据所述测试数据和进行所述实例化操作后的业务类对获取所述程序包后的数据访问层进行验证。采用上述技术方案,解决了相关技术中,对数据访问层进行验证时,不能兼顾验证效果和外部依赖的问题,从而在解决外部依赖问题的同时,保证对数据访问层验证的效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明实施例的一种数据访问层验证方法的计算机终端的硬件结构框图;
图2是根据本发明实施例的一种数据访问层验证方法的流程示意图;
图3是根据本发明实施例的一种数据访问层验证装置的结构框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请实施例所提供的方法实施例可以在计算机终端,或者类似的运算装置中执行。以运行在计算机终端上为例,图1是本发明实施例的一种数据访问层验证方法的计算机终端的硬件结构框图。如图1所示,计算机终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器(Microprocessor Unit,简称是MPU)或可编程逻辑器件(Programmable logic device,简称是PLD))和用于存储数据的存储器104,在一个示例性实施例中,上述计算机终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述计算机终端的结构造成限定。例如,计算机终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示等同功能或比图1所示功能更多的不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的数据访问层验证方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种数据访问层验证方法,应用于上述计算机终端,图2是根据本发明实施例的数据访问层验证方法的流程示意图,该流程包括如下步骤:
步骤S202:通过精准加载方式获取测试数据,其中,测试数据是当前测试类对应的数据库,包括表结构和数据;
步骤S204:通过精准加载方式获取当前测试类的业务类,并对业务类进行实例化操作;
步骤S206:指示数据访问层通过精准加载方式获取当前测试类的程序包;
步骤S208:根据测试数据和进行实例化操作后的业务类对获取程序包后的数据访问层进行验证。
通过本发明,通过精准加载方式获取测试数据,其中,测试数据是当前测试类对应的数据库,包括表结构和数据;通过精准加载方式获取当前测试类的业务类,并对业务类进行实例化操作;指示数据访问层通过精准加载方式获取当前测试类的程序包;根据测试数据和进行实例化操作后的业务类对获取程序包后的数据访问层进行验证。也就是说,本发明通过精准加载方式获取测试数据、当前测试类的业务类和当前测试类的程序包,根据测试数据和进行实例化操作后的业务类对获取程序包后的数据访问层进行验证。采用上述技术方案,解决了相关技术中,对数据访问层进行验证时,不能兼顾验证效果和外部依赖的问题,从而在解决外部依赖问题的同时,保证对数据访问层验证的效果。
现有技术,要么是采取直接Mock的方式,用一个虚拟的对象(Mock对象),实现数据访问层的测试,会导致验证结果不准确。要么就是仅仅使用内存数据库的方式,替代物理数据库,对数据访问层进行验证,这种方式无法解决外部依赖的问题,也就是说,不能实现对依赖于外部环境的数据访问层进行验证。本发明基于传统技术做了改进和创新,实现了一种既不依赖于外部环境、又能对数据访问层层进行验证的解决方案。对于传统不依赖于外部环境的单元测试,有增强测试内容的作用。另外,本发明因为采用了精准加载的方式,和全量加载相比,每个单元测试加载bean的数量大幅度减少,所以本次的测试整体加载、运行时间会大幅减少,提高了效率。
在步骤S202中,通过精准加载方式获取测试数据,包括:获取内存数据库,其中,内存数据库是待测测试类对应的数据库,存储的数据包括测试数据,待测测试类包括当前测试类和在待测测试类中除当前测试类以外的剩余测试类;根据当前测试类,通过精准加载方式从内存数据库中确定测试数据。
需要说明的是,在通过精准加载方式获取测试数据之前,本发明先要获取内存数据库,其中,内存数据库是待测测试类对应的数据库,包括测试数据。待测测试类包括当前测试类和在待测测试类中除当前测试类以外的剩余测试类。也即是说,待测测试类包括当前测试类和剩余测试类,其中,待测测试类可以是所用计算机模型或者框架中所具有的所有的测试类。根据当前测试类,通过精准加载方式从内存数据库中确定测试数据,其中,内存数据库可以是所用计算机模型或者框架中所需要的数据库,测试数据是当前测试类运行过程中需要的。在数据库中,通过精准加载方式找到当前测试类所需要的数据库就可以得到测试数据。
举例说明,在Spring MVC模型中,Spring MVC模型中主要有3层:Controller(控制层)、Service(业务层)、DAO(数据访问层)。调用关系如下:Controller(控制层)调用Service(业务层)处理业务,Service调用DAO(数据访问层)访问数据库,并完成数据库的增删改查操作,DAO层返沪处理结果给Service层,Service层再返回结果给Controller层,最后Controller层返回具体页面和数据到客户端。
在Spring MVC模型的数据库中,通过精准加载方式找到当前测试类所需要的数据库就可以得到测试数据。需要说明的是,内存数据库可以是H2类型的内存数据库。
在执行步骤S202之后,也就是获取测试数据之后,方法还包括:在所述测试数据中存储了剩余测试类和所述当前测试类都对应的第一表结构和表数据的情况下,对所述测试数据进行清理处理,以使所述测试数据不存储所述第一表结构和表数据;获取所述第一表结构和表数据对应的第二表结构和表数据;对进行所述清理处理后测试数据和所述第二表结构和表数据进行合并处理,得到新的测试数据。
在从内存数据库中确定测试数据之后,还需要检验测试数据中是否存储了剩余测试类和所述当前测试类都对应的第一表结构和表数据。如果测试数据中存储了剩余测试类和所述当前测试类都对应的第一表结构和表数据,需要对测试数据进行清理处理,清理掉测试数据中存储的剩余测试类和所述当前测试类都对应的第一表结构和表数据,以使所述测试数据不存储所述第一表结构和表数据。现有技术在对当前测试类进行验证的时候,是加载了所用计算机模型或者框架所对应的数据,其中,有大量剩余测试类和所述当前测试类都对应的第一表结构和表数据,当前测试类运行时,可能对本测试类的有影响。在所述清理处理之后,获取所述第一表结构和表数据对应的第二表结构和表数据,用以补充清理掉的第一表结构和表数据。对进行所述清理处理后测试数据和所述第二表结构和表数据进行合并处理,得到新的测试数据。使用新的测试数据运行当前测试类。而本发明通过上述技术手段,就可以减少加载数据的工作量,同时避免上述影响。
在执行步骤S208之前,也即是根据测试数据和进行实例化操作后的业务类对获取程序包后的数据访问层进行验证之前,方法还包括:对当前测试类进行解析处理,以确定当前测试类对应的加载内容,其中,加载内容包括:测试数据、业务类、程序包;获取当前测试类对应的加载内容。
根据测试数据和进行实例化操作后的业务类对获取程序包后的数据访问层进行验证之前,还需要对当前测试类进行解析处理,以确定当前测试类对应的加载内容,其中,加载内容包括:测试数据、业务类、程序包。确定当前测试类对应的加载内容之后,获取当前测试类对应的加载内容。上述方法也可以理解为通过精准加载方式获取内容的操作方式。通过上述技术手段,可以通过精准加载方式获取测试数据、当前测试类的业务类和当前测试类的程序包,减少了对数据访问层进行验证时的工作量,做到了简化加载内容的过程。
在步骤S204中,对业务类进行实例化操作,包括:确定业务类的类别,其中,业务类包括不依赖外部服务的业务类和依赖外部服务的业务类;当业务类是不依赖外部服务的业务类时,采用ContextConfigurationzhu注解方式对业务类进行实例化操作;当业务类是依赖外部服务的业务类时,采用mockbean注解方式对业务类进行实例化操作。
通过精准加载方式获取当前测试类的业务类之后,还需要对业务类进行实例化操作。传统方式运行当前测试类时,会全量加载整个工程的所有bean。因为有些bean的实例化依赖于外部环境,所以除非解决所有外部依赖bean,否则运行不起来。如果每一个单元测试类都要独自解决所有外部依赖的bean(不依赖于外部服务是否存在),难度、复杂度、时间都会消耗很大。而本发明在实例化操作之前,首先确定业务类的类别,其中,业务类包括不依赖外部服务的业务类和依赖外部服务的业务类。当业务类是不依赖外部服务的业务类时,采用ContextConfigurationzhu注解方式对业务类进行实例化操作。当业务类是依赖外部服务的业务类时,采用mockbean注解方式对业务类进行实例化操作。通过上述技术手段,本发明分析该测试类具体使用到哪些bean,以实现精准加载。
可选的,在指示数据访问层通过精准加载方式获取当前测试类的程序包之后,方法还包括:获取数据访问层的反馈信息;根据反馈信息对数据访问层进行验证。
本发明根据测试数据和进行实例化操作后的业务类对获取程序包后的数据访问层进行验证,还可以在指示数据访问层通过精准加载方式获取当前测试类的程序包之后,获取数据访问层的反馈信息,根据反馈信息对数据访问层进行验证。比如在Spring MVC模型中,对于Dao层不直接Mock,而是通过H2内存数据库来实现侧重Dao层的验证,同时根据Dao层不同数据的返回,验证Dao层,也可以验证service不同的分支。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,计算机终端,或者网络设备等)执行本发明各个实施例的方法。
在本实施例中还提供了一种数据访问层验证装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图3是根据本发明实施例的一种数据访问层验证装置的结构框图;如图3所示,包括:
第一加载模块30,用于通过精准加载方式获取测试数据,其中,测试数据是当前测试类对应的数据库,包括表结构和数据;
第二加载模块32,用于通过精准加载方式获取当前测试类的业务类,并对业务类进行实例化操作;
第三加载模块34,用于指示数据访问层通过精准加载方式获取当前测试类的程序包;
验证模块36,用于根据测试数据和进行实例化操作后的业务类对获取程序包后的数据访问层进行验证。
通过本发明,通过精准加载方式获取测试数据,其中,测试数据是当前测试类对应的数据库,包括表结构和数据;通过精准加载方式获取当前测试类的业务类,并对业务类进行实例化操作;指示数据访问层通过精准加载方式获取当前测试类的程序包;根据测试数据和进行实例化操作后的业务类对获取程序包后的数据访问层进行验证。也就是说,本发明通过精准加载方式获取测试数据、当前测试类的业务类和当前测试类的程序包,根据测试数据和进行实例化操作后的业务类对获取程序包后的数据访问层进行验证。采用上述技术方案,解决了相关技术中,对数据访问层进行验证时,不能兼顾验证效果和外部依赖的问题,从而在解决外部依赖问题的同时,保证对数据访问层验证的效果。
可选的,第一加载模块30还用于获取内存数据库,其中,内存数据库是待测测试类对应的数据库,存储的数据包括测试数据,待测测试类包括当前测试类和在待测测试类中除当前测试类以外的剩余测试类;根据当前测试类,通过精准加载方式从内存数据库中确定测试数据。
需要说明的是,在通过精准加载方式获取测试数据之前,本发明先要获取内存数据库,其中,内存数据库是待测测试类对应的数据库,包括测试数据。待测测试类包括当前测试类和在待测测试类中除当前测试类以外的剩余测试类。也即是说,待测测试类包括当前测试类和剩余测试类,其中,待测测试类可以是所用计算机模型或者框架中所具有的所有的测试类。根据当前测试类,通过精准加载方式从内存数据库中确定测试数据,其中,内存数据库可以是所用计算机模型或者框架中所需要的数据库,测试数据是当前测试类运行过程中需要的。在数据库中,通过精准加载方式找到当前测试类所需要的数据库就可以得到测试数据。
举例说明,在Spring MVC模型中,Spring MVC模型中主要有3层:Controller(控制层)、Service(业务层)、DAO(数据访问层)。调用关系如下:Controller(控制层)调用Service(业务层)处理业务,Service调用DAO(数据访问层)访问数据库,并完成数据库的增删改查操作,DAO层返沪处理结果给Service层,Service层再返回结果给Controller层,最后Controller层返回具体页面和数据到客户端。
在Spring MVC模型的数据库中,通过精准加载方式找到当前测试类所需要的数据库就可以得到测试数据。需要说明的是,内存数据库可以是H2类型的内存数据库。
可选的,第一加载模块30还用于在所述测试数据中存储了剩余测试类和所述当前测试类都对应的第一表结构和表数据的情况下,对所述测试数据进行清理处理,以使所述测试数据不存储所述第一表结构和表数据;获取所述第一表结构和表数据对应的第二表结构和表数据;对进行所述清理处理后测试数据和所述第二表结构和表数据进行合并处理,得到新的测试数据。
在从内存数据库中确定测试数据之后,还需要检验测试数据中是否存储了剩余测试类和所述当前测试类都对应的第一表结构和表数据。如果测试数据中存储了剩余测试类和所述当前测试类都对应的第一表结构和表数据,需要对测试数据进行清理处理,清理掉测试数据中存储的剩余测试类和所述当前测试类都对应的第一表结构和表数据,以使所述测试数据不存储所述第一表结构和表数据。现有技术在对当前测试类进行验证的时候,是加载了所用计算机模型或者框架所对应的数据,其中,有大量剩余测试类和所述当前测试类都对应的第一表结构和表数据,当前测试类运行时,可能对本测试类的有影响。在所述清理处理之后,获取所述第一表结构和表数据对应的第二表结构和表数据,用以补充清理掉的第一表结构和表数据。对进行所述清理处理后测试数据和所述第二表结构和表数据进行合并处理,得到新的测试数据。使用新的测试数据运行当前测试类。而本发明通过上述技术手段,就可以减少加载数据的工作量,同时避免上述影响。
可选的,第三加载模块34还用于对当前测试类进行解析处理,以确定当前测试类对应的加载内容,其中,加载内容包括:测试数据、业务类、程序包;获取当前测试类对应的加载内容。
根据测试数据和进行实例化操作后的业务类对获取程序包后的数据访问层进行验证之前,还需要对当前测试类进行解析处理,以确定当前测试类对应的加载内容,其中,加载内容包括:测试数据、业务类、程序包。确定当前测试类对应的加载内容之后,获取当前测试类对应的加载内容。上述方法也可以理解为通过精准加载方式获取内容的操作方式。通过上述技术手段,可以通过精准加载方式获取测试数据、当前测试类的业务类和当前测试类的程序包,减少了对数据访问层进行验证时的工作量,做到了简化加载内容的过程。
可选的,第二加载模块32还用于确定业务类的类别,其中,业务类包括不依赖外部服务的业务类和依赖外部服务的业务类;当业务类是不依赖外部服务的业务类时,采用ContextConfigurationzhu注解方式对业务类进行实例化操作;当业务类是依赖外部服务的业务类时,采用mockbean注解方式对业务类进行实例化操作。
通过精准加载方式获取当前测试类的业务类之后,还需要对业务类进行实例化操作。传统方式运行当前测试类时,会全量加载整个工程的所有bean。因为有些bean的实例化依赖于外部环境,所以除非解决所有外部依赖bean,否则运行不起来。如果每一个单元测试类都要独自解决所有外部依赖的bean(不依赖于外部服务是否存在),难度、复杂度、时间都会消耗很大。而本发明在实例化操作之前,首先确定业务类的类别,其中,业务类包括不依赖外部服务的业务类和依赖外部服务的业务类。当业务类是不依赖外部服务的业务类时,采用ContextConfigurationzhu注解方式对业务类进行实例化操作。当业务类是依赖外部服务的业务类时,采用mockbean注解方式对业务类进行实例化操作。通过上述技术手段,本发明分析该测试类具体使用到哪些bean,以实现精准加载。
可选的,验证模块36还用于获取数据访问层的反馈信息;根据反馈信息对数据访问层进行验证。
本发明根据测试数据和进行实例化操作后的业务类对获取程序包后的数据访问层进行验证,还可以在指示数据访问层通过精准加载方式获取当前测试类的程序包之后,获取数据访问层的反馈信息,根据反馈信息对数据访问层进行验证。比如在Spring MVC模型中,对于Dao层不直接Mock,而是通过H2内存数据库来实现侧重Dao层的验证,同时根据Dao层不同数据的返回,验证Dao层,也可以验证service不同的分支。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,通过精准加载方式获取测试数据,其中,测试数据是当前测试类对应的数据库,包括表结构和数据;
S2,通过精准加载方式获取当前测试类的业务类,并对业务类进行实例化操作;
S3,指示数据访问层通过精准加载方式获取当前测试类的程序包;
S4,根据测试数据和进行实例化操作后的业务类对获取程序包后的数据访问层进行验证。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,通过精准加载方式获取测试数据,其中,测试数据是当前测试类对应的数据库,包括表结构和数据;
S2,通过精准加载方式获取当前测试类的业务类,并对业务类进行实例化操作;
S3,指示数据访问层通过精准加载方式获取当前测试类的程序包;
S4,根据测试数据和进行实例化操作后的业务类对获取程序包后的数据访问层进行验证。
可选地,在本可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种数据访问层验证方法,其特征在于,包括:
通过精准加载方式获取测试数据,其中,所述测试数据是当前测试类对应的数据;
通过所述精准加载方式获取所述当前测试类的业务类,并对所述业务类进行实例化操作;
指示数据访问层通过所述精准加载方式获取所述当前测试类的程序包;
根据所述测试数据和进行所述实例化操作后的业务类对获取所述程序包后的数据访问层进行验证。
2.根据权利要求1所述的方法,其特征在于,通过精准加载方式获取测试数据,包括:
获取内存数据库,其中,所述内存数据库是待测测试类对应的数据库,存储的数据包括所述测试数据,所述待测测试类包括所述当前测试类和在所述待测测试类中除所述当前测试类以外的剩余测试类;
根据所述当前测试类,通过所述精准加载方式从所述内存数据库中确定所述测试数据。
3.根据权利要求1所述的方法,其特征在于,获取所述测试数据之后,所述方法还包括:
在所述测试数据中存储了剩余测试类和所述当前测试类都对应的第一表结构和表数据的情况下,对所述测试数据进行清理处理,以使所述测试数据不存储所述第一表结构和表数据;
获取所述第一表结构和表数据对应的第二表结构和表数据;
对进行所述清理处理后测试数据和所述第二表结构和表数据进行合并处理,以更新所述测试数据。
4.根据权利要求1所述的方法,其特征在于,根据所述测试数据和进行所述实例化操作后的业务类对获取所述程序包后的数据访问层进行验证之前,所述方法还包括:
对所述当前测试类进行解析处理,以确定所述当前测试类对应的加载内容,其中,所述加载内容包括:所述测试数据、所述业务类、所述程序包;
获取所述当前测试类对应的加载内容。
5.根据权利要求1所述的方法,其特征在于,对所述业务类进行实例化操作,包括:
确定所述业务类的类别,其中,所述业务类包括不依赖外部服务的业务类和依赖外部服务的业务类;
当所述业务类是不依赖外部服务的业务类时,采用ContextConfiguration注解方式对所述业务类进行实例化操作;
当所述业务类是依赖外部服务的业务类时,采用mockbean注解方式对所述业务类进行实例化操作。
6.根据权利要求1所述的方法,其特征在于,在指示数据访问层通过所述精准加载方式获取所述当前测试类的程序包之后,所述方法还包括:
获取所述数据访问层的反馈信息;
根据所述反馈信息对所述数据访问层进行验证。
7.一种数据访问层验证装置,其特征在于,包括:
第一加载模块,用于通过精准加载方式获取测试数据,其中,所述测试数据是当前测试类对应的数据库,包括表结构和数据;
第二加载模块,用于通过所述精准加载方式获取所述当前测试类的业务类,并对所述业务类进行实例化操作;
第三加载模块,用于指示数据访问层通过所述精准加载方式获取所述当前测试类的程序包;
验证模块,用于根据所述测试数据和进行所述实例化操作后的业务类对获取所述程序包后的数据访问层进行验证。
8.根据权利要求7所述的装置,其特征在于,所述第一加载模块还用于:
获取内存数据库,其中,所述内存数据库是待测测试类对应的数据库,存储的数据包括所述测试数据,所述待测测试类包括所述当前测试类和在所述待测测试类中除所述当前测试类以外的剩余测试类;
根据所述当前测试类,通过所述精准加载方式从所述内存数据库中确定所述测试数据。
9.一种计算机可读的存储介质,其特征在于,所述计算机可读的存储介质包括存储的程序,其中,所述程序运行时执行上述权利要求1至6任一项中所述的方法。
10.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行所述权利要求1至6任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110336722.4A CN113110982B (zh) | 2021-03-29 | 2021-03-29 | 数据访问层验证方法及装置、存储介质及电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110336722.4A CN113110982B (zh) | 2021-03-29 | 2021-03-29 | 数据访问层验证方法及装置、存储介质及电子装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113110982A true CN113110982A (zh) | 2021-07-13 |
CN113110982B CN113110982B (zh) | 2023-02-03 |
Family
ID=76712791
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110336722.4A Active CN113110982B (zh) | 2021-03-29 | 2021-03-29 | 数据访问层验证方法及装置、存储介质及电子装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113110982B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113407460A (zh) * | 2021-07-16 | 2021-09-17 | 北京字节跳动网络技术有限公司 | 一种页面测试方法、装置、设备及存储介质 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7103769B1 (en) * | 2000-03-03 | 2006-09-05 | Koninklijke Philips Electronics N.V. | IEEE 1394 link layer chip with “5C” authentication and key exchange accelerator |
CN101662394A (zh) * | 2009-09-15 | 2010-03-03 | 中兴通讯股份有限公司 | 自动化测试系统和自动化测试方法 |
CN102521277A (zh) * | 2011-11-24 | 2012-06-27 | 广东高新兴通信股份有限公司 | 一种数据库平台的访问方法 |
CN102693182A (zh) * | 2012-05-25 | 2012-09-26 | 苏州博远容天信息科技有限公司 | 一种在mvc 中使用测试驱动开发的存储库模式 |
CN104123227A (zh) * | 2014-08-13 | 2014-10-29 | 广东电网公司信息中心 | 一种自动生成测试用例的方法 |
CN107395623A (zh) * | 2017-08-18 | 2017-11-24 | 广州视源电子科技股份有限公司 | 接口访问数据验证方法及装置、计算机存储介质和设备 |
CN108563558A (zh) * | 2018-02-26 | 2018-09-21 | 南京粤讯电子科技有限公司 | 一种程序测试方法、测试桩系统以及装置 |
CN108768964A (zh) * | 2018-05-14 | 2018-11-06 | 无锡知更鸟网络科技有限公司 | 一种基于SaaS数据管理系统 |
CN110851287A (zh) * | 2019-09-25 | 2020-02-28 | 视联动力信息技术股份有限公司 | 数据处理方法、装置及计算机可读存储介质 |
CN111459821A (zh) * | 2020-04-01 | 2020-07-28 | 汇通达网络股份有限公司 | 一种基于TestNG的软件自动化单元测试方法 |
CN111782535A (zh) * | 2020-06-30 | 2020-10-16 | 京东数字科技控股股份有限公司 | 测试方法及装置 |
-
2021
- 2021-03-29 CN CN202110336722.4A patent/CN113110982B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7103769B1 (en) * | 2000-03-03 | 2006-09-05 | Koninklijke Philips Electronics N.V. | IEEE 1394 link layer chip with “5C” authentication and key exchange accelerator |
CN101662394A (zh) * | 2009-09-15 | 2010-03-03 | 中兴通讯股份有限公司 | 自动化测试系统和自动化测试方法 |
CN102521277A (zh) * | 2011-11-24 | 2012-06-27 | 广东高新兴通信股份有限公司 | 一种数据库平台的访问方法 |
CN102693182A (zh) * | 2012-05-25 | 2012-09-26 | 苏州博远容天信息科技有限公司 | 一种在mvc 中使用测试驱动开发的存储库模式 |
CN104123227A (zh) * | 2014-08-13 | 2014-10-29 | 广东电网公司信息中心 | 一种自动生成测试用例的方法 |
CN107395623A (zh) * | 2017-08-18 | 2017-11-24 | 广州视源电子科技股份有限公司 | 接口访问数据验证方法及装置、计算机存储介质和设备 |
CN108563558A (zh) * | 2018-02-26 | 2018-09-21 | 南京粤讯电子科技有限公司 | 一种程序测试方法、测试桩系统以及装置 |
CN108768964A (zh) * | 2018-05-14 | 2018-11-06 | 无锡知更鸟网络科技有限公司 | 一种基于SaaS数据管理系统 |
CN110851287A (zh) * | 2019-09-25 | 2020-02-28 | 视联动力信息技术股份有限公司 | 数据处理方法、装置及计算机可读存储介质 |
CN111459821A (zh) * | 2020-04-01 | 2020-07-28 | 汇通达网络股份有限公司 | 一种基于TestNG的软件自动化单元测试方法 |
CN111782535A (zh) * | 2020-06-30 | 2020-10-16 | 京东数字科技控股股份有限公司 | 测试方法及装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113407460A (zh) * | 2021-07-16 | 2021-09-17 | 北京字节跳动网络技术有限公司 | 一种页面测试方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113110982B (zh) | 2023-02-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108062367B (zh) | 一种数据列表的上传方法及其终端 | |
CN112416353B (zh) | 渠道包打包方法、装置及计算机设备 | |
CN108228444B (zh) | 一种测试方法和装置 | |
CN109327490B (zh) | 一种部署云服务组件的方法和服务器 | |
CN113312064A (zh) | 物理机的安装配置方法、装置以及计算机可读介质 | |
CN113110982B (zh) | 数据访问层验证方法及装置、存储介质及电子装置 | |
CN112699034B (zh) | 虚拟登录用户构建方法、装置、设备及存储介质 | |
CN114003510A (zh) | 基于Mock服务的脚本测试方法、装置、设备及介质 | |
CN113014626B (zh) | 数据服务的管理方法及装置、存储介质及电子装置 | |
CN114610598A (zh) | 测试方法、装置、电子设备及计算机可读存储介质 | |
CN110569129A (zh) | 资源分配方法及装置、存储介质、电子装置 | |
CN113434184A (zh) | 设备升级方法、装置、存储介质及电子装置 | |
CN111831452A (zh) | 任务执行方法、装置、存储介质及电子装置 | |
CN111159226A (zh) | 指标查询方法及系统 | |
CN110580172B (zh) | 配置规则的验证方法及装置、存储介质、电子装置 | |
CN110276212B (zh) | 数据的处理方法及装置、存储介质和电子装置 | |
CN113934552A (zh) | 功能代码的确定方法及装置、存储介质、电子装置 | |
CN113434839A (zh) | 前端页面的访问方法和装置、存储介质及电子装置 | |
CN109918300B (zh) | 一种测试数据准备方法、装置、终端及存储介质 | |
US11050621B2 (en) | Client, server and differential upgrade method | |
CN111240690A (zh) | 基于策略模式的服务处理方法、装置、设备及存储介质 | |
CN112306843A (zh) | 一种测试方法、装置以及存储介质 | |
CN112231819B (zh) | 线段共面的确定方法及装置、存储介质和电子装置 | |
CN105677453B (zh) | 任务平台任务处理方法和装置 | |
CN116089020B (zh) | 虚拟机运行方法、扩容方法、扩容系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |