一种单元测试方法和装置制造方法及图纸

技术编号:11076140 阅读:98 留言:0更新日期:2015-02-25 14:34
本发明专利技术实施例公开了一种单元测试方法和装置,该方法可包括:对用于进行单元测试的测试数据库的API进行mock,以得到mock API;生成包括所述mock API的嵌入式关系型数据库;当需要对被测单元进行单元测试时,采用所述嵌入式关系型数据库包括的所述mock API对所述被测单元进行单元测试。本发明专利技术实施例可以降低单元测试的成本。

【技术实现步骤摘要】
一种单元测试方法和装置
本专利技术涉及互联网
,尤其涉及一种单元测试方法和装置。
技术介绍
随着互联网技术的发展,互联网产品也越来越多,这样累积程序项目数量也越来越多。为了保证这些程序项目效率与质量,在开发过程往往需要对程序项目进行单元测试,其中,单元测试可以是对单个程序、函数、过程、类、窗口等测试单元进行验证,以验证被测试单元是否存在错误或者异常。 然而现在的单元测试都是需要先准备多个数据环境,即安装多个测试数据库,例如:mySql数据库和redis数据库,再采用多个测试数据库对被测单元进行单元测试。这样当被测试的程序项目很多时,每个程序项目都需要安装专用的测试数据库,这样对多个程序项目进行单元测序时,就需要安装很多个测试数据库。 可见,目前的单元测试技术在实现成本过高。
技术实现思路
本专利技术提供了一种单元测试方法和装置,可以降低单元测试的成本。 第一方面,本专利技术提供一种单元测试方法,包括: 对用于进行单元测试的测试数据库的应用程序编程接口(Applicat1nProgramming Interface, API)进行模拟 mock,以得到 mock API ; 生成包括所述mock API的嵌入式关系型数据库; 当需要对被测单元进行单元测试时,采用所述嵌入式关系型数据库包括的所述mock API对所述被测单元进行单元测试。 第二方面,本专利技术提供一种单元测试装置,包括:模拟单元、生成单元和测试单元,其中: 所述模拟单元,用于对用于进行单元测试的测试数据库的API进行模拟mock,以得到 mock API ; 所述生成单元,用于生成包括所述mock API的嵌入式关系型数据库; 所述测试单元,用于当需要对被测单元进行单元测试时,采用所述嵌入式关系型数据库包括的所述mock API对所述被测单元进行单元测试。 上述技术方案中,对用于进行单元测试的测试数据库的应用程序编程接口 API进行模拟mock,以得到mock API ;生成包括所述mock API的嵌入式关系型数据库;当需要对被测单元进行单元测试时,采用所述嵌入式关系型数据库包括的所述mock API对所述被测单元进行单元测试。由于嵌入式关系型数据库是不需要安装和部署的,相比现在技术需要安装多个测试数据库,本专利技术可以降低单元测试的成本。 【附图说明】 为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。 图1是本专利技术实施例提供的一种单元测试方法的流程示意图; 图2是本专利技术实施例提供的一种可选的效果示意图; 图3是本专利技术实施例提供的另一种单元测试方法的流程示意图; 图4是本专利技术实施例提供的一种单元测试装置的结构示意图; 图5是本专利技术实施例提供的另一种单元测试装置的结构示意图; 图6是本专利技术实施例提供的另一种单元测试装置的结构示意图。 【具体实施方式】 下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。 本专利技术实施例中,被测单元可以是任何程序、函数、过程、类、窗口等可测试单元程序。 请参阅图1,图1是本专利技术实施例提供的一种单元测试方法的流程示意图,如图1所示,包括以下步骤: S101、对用于进行单元测试的测试数据库的API进行模拟mock,以得到mock API。 可选的,上述用于进行单元测试的测试数据库可以是需要在本地安装和部署才可以使用的数据库,例如:mysql数据库和redis数据库等。另外,上述被mock的API可以是测试数据库中的一部分或者全部的API,例如:可以选择被测试数据库一些常用的API进行 mocko 需要说明的是,上述mock API的属性和功能与测试数据库中的API可以相同。这样可以实现采用嵌入式关系型数据库进行单元测试与采用测试数据库进行单元测试的效果一样。 S102、生成包括所述mock API的嵌入式关系型数据库。 可选的,上述嵌入式关系型数据库可以是H2数据库。 S103、当需要对被测单元进行单元测试时,采用所述嵌入式关系型数据库包括的所述mock API对所述被测单元进行单元测试。 可选的,上述采用所述嵌入式关系型数据库包括的所述mock API对所述被测单元进行单元测试可以是,将被测单元需要测试的数据插入到嵌入式关系型数据库包括的与该被测单元对应的mock API,嵌入式关系型数据库再返回相应地测试结果,以确认被测单元是否存在错误或者异常。 通过上述步骤可以实现采用嵌入式关系型数据库包括的mock API进行单元测试,由于嵌入式关系型数据库不需要装置和部署,且嵌入式关系型数据库可以采用JAVA语言进行编写,以实现一种低成本技术模拟一种高成本技术实现相同的单元测试,从而可以降低单元测试的成本。另外,由于在单元测试过程中不需要安装测试数据库,这样可以实现被测单元与嵌入式关系型数据库同在一个沙箱里进行单元测试,例如:以测试数据库包括mysql数据库和redis数据库为例,可以实现如图2所示的隔离效果,完全隔离了测试数据库,即不需要安装测试数据库,以简化测试流程,而且还可以保证程序功能的完整性。 可选的,上述方法可以应用于任何智能设备,例如:服务器、平板电脑、手机、电子阅读器、遥控器、个人计算机(Personal Computer, PC)、笔记本电脑、车载设备、网络电视、可穿戴设备等智能设备。 本实施例中,对用于进行单元测试的测试数据库的应用程序编程接口 API进行模拟mock,以得到mock API ;生成包括所述mock API的嵌入式关系型数据库;当需要对被测单元进行单元测试时,采用所述嵌入式关系型数据库包括的所述mock API对所述被测单元进行单元测试。由于嵌入式关系型数据库是不需要安装和部署的,相比现在技术需要安装多个测试数据库,本专利技术可以降低单元测试的成本。 请参阅图3,图3是本专利技术实施例提供的另一种单元测试方法的流程示意图,如图3所示,包括以下步骤: S301、对用于进行单元测试的测试数据库的应用程序编程接口 API进行模拟mock,以得到 mock API。 可选的,上述测试数据库可以包括非关系型数据库,例如:redis数据库,这样步骤S301可以包括: 将所述非关系型数据库中的API的预设基本命令转换成所述嵌入式关系型数据库中的基本命令,以得到mock API。 其中,上述预设基本命令可以是非关系型数据库中常用的基本命令,例如:set命令和get命令,这样通过步骤S301就可以将非关系型数据库中的set命令和get命令转换为嵌入式关系型数据库中的新增(例如:insert)命令和读取(例如:select)命令。当然,本实施例中还可以是将非关系型数据库中的API的所有基本命本文档来自技高网...

【技术保护点】
一种单元测试方法,其特征在于,包括:对用于进行单元测试的测试数据库的应用程序编程接口API进行模拟mock,以得到mock API;生成包括所述mock API的嵌入式关系型数据库;当需要对被测单元进行单元测试时,采用所述嵌入式关系型数据库包括的所述mock API对所述被测单元进行单元测试。

【技术特征摘要】
1.一种单元测试方法,其特征在于,包括: 对用于进行单元测试的测试数据库的应用程序编程接口 API进行模拟mock,以得到mock API ; 生成包括所述mock API的嵌入式关系型数据库; 当需要对被测单元进行单元测试时,采用所述嵌入式关系型数据库包括的所述mockAPI对所述被测单元进行单元测试。2.如权利要求1所述的方法,其特征在于,所述测试数据库至少包括非关系型数据库; 所述对用于进行单元测试的测试数据库的API进行模拟mock,以得到mock API,包括: 将所述非关系型数据库中的API的预设基本命令转换成所述嵌入式关系型数据库中的基本命令,以得到mock API。3.如权利要求2所述的方法,其特征在于,所述测试数据库进一步包括关系型数据库; 所述对用于进行单元测试的测试数据库的API进行模拟mock,以得到mock API进一步还包括: 将所述关系型数据库中的API进行模拟mock,以得到mock API。4.如权利要求1-3中任一项所述的方法,其特征在于,所述生成包括所述mockAPI的嵌入式关系型数据库,包括: 通过注射inject技术和开源框架spring技术生成包括所述mock API的嵌入式关系型数据库。5.如权利要求1-3中任一项所述的方法,其特征在于,所述采用所述嵌入式关系型数据库包括的所述mock API对所述被测单元进行单元测试之后,所述方法还包括: 清除...

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

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

1