测试用数据的生成方法、单元测试方法以及单元测试系统技术方案

技术编号:7935404 阅读:133 留言:0更新日期:2012-11-01 05:07
本申请公开了一种测试用数据的生成方法、单元测试方法以及单元测试系统,所述测试用数据的生成方法包括:获取数据对象的类型,利用JAVA反射机制获取所述数据对象的属性信息;根据所述数据对象的类型和属性信息,按照设定的规则生成用于进行插入测试或/和更新测试的测试用数据。所述单元测试方法包括:利用生成的用于进行插入测试的数据执行插入测试;当插入测试结果正确时,利用生成的用于进行更新测试的数据执行更新测试;当更新测试结果正确时,进行删除测试,并当删除测试结果正确时返回测试正确响应。通过本申请,可以提高生成测试用数据的效率,进而提高单元测试的效率。

【技术实现步骤摘要】

本申请涉及软件测试领域,特别是涉及一种测试用数据的生成方法、单元测试方法以及单元测试系统
技术介绍
单元测试是对由源代码实现的每一个程序单元进行测试,检查各个程序模块是否正确地实现了规定的功能。单元测试检查每个控制结构的分支以确保完全覆盖和最大可能的错误检查。现有技术中,准备单元测试数据一般采用如下方法 (I)手工创建数据对象并赋值。(2)从外部数据数据源,如XML,EXCEL等读取;其中,XML或EXCEL的数据需要手工维护。在实现本申请的过程中,专利技术人发现现有技术至少存在如下问题现有技术中,均需要手工准备测试数据,需要考虑数据类型和数据格式转换等问题。当数据库表结构发生变更时,需要进行手工调整。
技术实现思路
本申请的目的在于提供一种测试用数据的生成方法、单元测试方法以及单元测试系统,以提高测试用数据的生成效率,进而提高单元测试的效率,为此,本申请采用如下技术方案本申请提出一种测试用数据的生成方法,其特征在于,包括获取数据对象的类型,利用JAVA反射机制获取所述数据对象的属性信息;根据所述数据对象的类型和属性信息,按照设定的规则生成用于进行插入测试或/和更新测试的测试用数据。优选地,所述根据数据对象的类型和属性信息,生成测试用数据,具体为获取所述数据对象的属性的数据类型,并根据所述属性的数据类型,生成相应类型的属性值。优选地,所述用于进行插入测试的数据根据以下规则之一或任意组合生成对于数据类型为字符串类型的属性,使用该属性的名称为所述进行插入测试的数据的相应属性字段赋值;对于数据类型为数值类型的属性,根据随机数为所述进行插入测试的数据的相应属性字段赋值;对于数据类型为日期类型的属性,使用系统当前时间为所述进行插入测试的数据的相应属性字段赋值;对于数据类型为货币类型的属性,根据随机数为所述进行插入测试的数据的相应属性字段赋值,其中,币种类型为随机选择的币种类型。优选地,所述用于进行更新测试的数据根据所述用于进行插入测试的数据生成,且所述用于进行更新测试的数据与所述用于进行插入测试的数据对应属性字段赋值不完全相同。本申请提出一种利用上述方法生成的测试用数据实现的单元测试方法,该方法包括利用生成的用于进行插入测试的数据执行插入测试;若插入测试结果正确,则利用生成的用于进行更新测试的数据执行更新测试;若更新测试结果正确,则进行删除测试,并当删除测试结果正确时返回测试正确响应。优选地,所述执行插入测试具体为通过调用数据访问对象DAO层访问代码,在待测数据库表中插入所述用于进行插 入测试的数据;根据返回的当前插入的数据的主键,在数据库表中查询所述主键对应的数据,并比较查询到的数据和所述用于进行插入测试的数据;若二者相同,则返回插入测试结果正确的响应;否则,返回插入测试结果异常的响应或/和查询测试结果异常的响应。优选地,所述执行更新测试具体为通过调用DAO层访问代码,对待测数据库表中插入的所述用于进行插入测试的数据进行更新操作;利用所述主键在更新后的数据库表中查询对应的数据,并比较查询到的数据和所述用于进行更新测试的数据;若二者相同,则返回更新测试结果正确的响应;否则,返回更新测试结果异常的响应或/和查询测试结果异常的响应。优选地,插入测试结果正确时,根据所述用于进行插入测试的数据生成所述用于进行更新测试的数据。本申请提出一种单元测试系统,包括获取模块,用于获取数据对象类型,并利用JAVA反射机制获取所述数据对象的属性信息;生成模块,用于根据所述数据对象的类型和属性信息,按照设定的规则生成用于进行插入测试或/和更新测试的测试用数据;测试模块,用于利用生成的用于进行插入测试的数据执行插入测试,并当插入测试结果正确时,利用生成的用于进行更新测试的数据执行更新测试,并当更新测试结果正确时,进行删除测试,并当删除测试结果正确时返回测试正确响应。优选地,所述获取模块具体用于,获取所述数据对象的属性的数据类型;所述生成模块具体用于,根据所述属性的数据类型,生成相应类型的属性值。优选地,所述生成模块使用以下规则之一或任意组合生成用于进行插入测试的数据对于数据类型为字符串类型的属性,使用该属性的名称为所述进行插入测试的数据的相应属性字段赋值;对于数据类型为数值类型的属性,根据随机数为所述进行插入测试的数据的相应属性字段赋值;对于数据类型为日期类型的属性,使用系统当前时间为所述进行插入测试的数据的相应属性字段赋值;对于数据类型为货币类型的属性,根据随机数为所述进行插入测试的数据的相应属性字段赋值,其中,币种类型为随机选择的币种类型。优选地,所述生成模块具体用于,根据生成的所述用于进行插入测试的数据生成用于进行更新测试的数据;其中,所述用于进行更新测试的数据与所述用于进行插入测试的数据对应属性字段赋值不完全相同。优选地,所述测试模块具体用于,在执行插入测试时,通过调用数据访问对象DAO层访问通过调用数据访问对象DAO层访问代码,在待测数据库表中插入所述用于进行插入测试的数据;根据返回的当前插入的数据的主键,在数据库表中查询所述主键对应的数据,并比较查询到的数据和所述用于进行插入测试的数据;若二者相同,则返回插入测试结果正确的响应;否则,返回插入测试结果异常的响应或/和查询测试结果异常的响应。 优选地,所述测试模块具体用于,在执行更新测试时,通过调用DAO层访问代码,对待测数据库表中插入的所述用于进行插入测试的数据进行更新操作;利用所述主键在更新后的数据库表中查询对应的数据,并比较查询到的数据和所述用于进行更新测试的数据;若二者相同,则返回更新测试结果正确的响应;否则,返回更新测试结果异常的响应或/和查询测试结果异常的响应。优选地,所述生成模块具体用于,当插入测试结果正确时,根据所述用于进行插入测试的数据生成用于进行更新测试的数据。本申请的实施例包括以下优点,因为通过获取数据对象类型,并利用JAVA反射机制自动获取该数据对象的属性信息,并根据获取到的数据对象的属性信息以及数据对象的类型自动生成测试用数据,提高了生成测试用户数据的效率,进而提高了单元测试的效率。当然,实施本申请的实施例的任一产品并不一定需要同时达到以上所述的所有优点。附图说明图I为本申请实施例中的数据生成方法流程示意图;图2为本申请实施例中的单元测试方法流程示意图;图3为本申请实施例中的单元测试系统的结构示意图。具体实施例方式本申请实施例提供的技术方案中,通过获取数据对象的类型,并利用JAVA反射机制根据获取到的数据对象的类型自动获取该数据对象的属性信息,并根据获取到的数据对象的属性信息以及数据对象的类型自动生成测试用数据,以利用生成的测试用数据对DAO(Data Access Objects,数据访问对象)层代码进行测试。在数据库应用系统中,通常可以将一个数据库表作为一个JAVA数据对象进行处理。其中,数据库表的类型即为相应数据对象的类型,数据库表的表项中的各字段分别为相应数据对象的相应属性。例如,一个网站的注册用户表可以作为一个JAVA数据对象,其中的每一个表项(一个表项记录有一个用户的相关信息)可以作为该JAVA数据对象的下一级数据对象,该下一级数据对象的类型可表示为user, class,用户表的表项中的不同字段(如姓名、出生日期等)分别对应数据本文档来自技高网...

【技术保护点】
一种测试用数据的生成方法,其特征在于,包括:获取数据对象的类型,利用JAVA反射机制获取所述数据对象的属性信息;根据所述数据对象的类型和属性信息,按照设定的规则生成用于进行插入测试或/和更新测试的测试用数据。

【技术特征摘要】

【专利技术属性】
技术研发人员:杜刚
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:

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

1