一种数据表操作结果断言方法与流程

文档序号:16667064发布日期:2019-01-18 23:20阅读:596来源:国知局
一种数据表操作结果断言方法与流程

本发明涉及计算机软件测试领域,尤其涉及一种数据表操作结果断言方法。



背景技术:

软件测试作为软件工程中重要的一环,无论是在过去传统瀑布式开发模型中,还是在当今火爆的敏捷开发模型中,都扮演着不可或缺的作用。近来随着移动互联网行业的持续发展,ci/cd已经成为软件工程的标准配置,而ci/cd的落地则要求必须做到单元测试、集成和系统测试的自动化。

在测试自动化中,对程序或功能操作结果正确性的判断必须由测试程序来自动完成的,这需要各类断言库的支持。目前大多数断言库主要解决了程序或功能返回结果与预期结果对比判断的问题,尚未实现程序或功能对数据表操作结果正确的判断。实际测试中要达到此目标,需要由测试人员编写较多代码予以实现,处理过程较为复杂,一般包括:查询数据库,整理查询结果,利用断言库断言查询结果的正确性等步骤。该方式虽然能满足要求,但是存在如下缺点:测试人员需要编写大量的测试代码,过程繁杂,效率低下,实现步骤几乎千篇一律,形成大量重复代码,导致测试代码可维护性。



技术实现要素:

为克服相关技术中存在的不足,本公开提供一种数据表操作结果断言方法。

本公开实施例的第一方面,提供一种数据表操作结果断言方法,包括以下步骤:

根据应用场景,对数据库连接、数据表名和所需关注的数据表字段进行初始化配置;

根据测试目选择相应的测试行为,其中,所述测试行为包括断言记录数或断言记录存在性、断言记录数增量、断言指定记录内容和断言新增记录内容;

依据所选择的所述测试行为执行业务逻辑操作以触发数据表操作行为;以及

调用相应的判断算法对业务逻辑操作结果进行判断。

可选地,选择的所述测试行为是断言记录数或记录存在性时,调用assertrowcount()判断算法对所述业务逻辑操作结果进行判断。

可选地,选择的所述测试行为是断言记录数增量时,调用init()算法重置断言对象,执行所述业务逻辑操作,调用assertrowcountdelta()判断算法对所述业务逻辑操作结果进行判断。

可选地,选择的所述测试行为是断言指定记录内容时,调用addexceptedvalues()方法,以object二维数组的方式传入预期值,其中,第一维是记录项,第二维是记录项所包含预期值,该预期值顺序与所述数据表字段顺序保持一致;调用init()算法和assertonerecordbyid()判断算法对所述业务逻辑操作结果进行判断。

可选地,选择的所述测试行为是断言新增记录内容时,调用addexceptedvalues()方法,以object二维数组的方式传入预期值,其中,第一维是记录项,第二维是记录项所包含预期值,该预期值顺序与所述数据表字段顺序保持一致;调用init()算法和assertthelastrecordbyid()判断算法对所述业务逻辑操作结果进行判断。

本发明的有益效果:

(1)以不超过3行代码完成一次数据表操作结果断言,简洁、高效;(2)实现了对记录数的断言;(3)实现了对记录数变化数量的断言;(4)实现了对记录存在性的断言;(5)实现了对记录内容的断言。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一个实施例示意图。

具体实施方式

在下面的详细描述中,提出了许多具体细节,以便于对本发明的全面理解。但是,对于本领域技术人员来说很明显的是,明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本发明的示例来提供对本发明的更好地理解。

下面将结合附图,对本发明实施例的技术方案进行描述。

如图1所示,本公开提供一种数据表操作结果断言方法,包括以下步骤:

根据应用场景,对数据库连接、数据表名和所需关注的数据表字段进行初始化配置;

根据测试目选择相应的测试行为,其中,所述测试行为包括断言记录数或断言记录存在性、断言记录数增量、断言指定记录内容和断言新增记录内容;

依据所选择的所述测试行为执行业务逻辑操作以触发数据表操作行为;以及

调用相应的判断算法对业务逻辑操作结果进行判断。

为能够从目标数据库查询获取数据记录的详细信息,采用springjdbctemplate组件进行数据表的进行select查询;为便捷地查询出数据表记录数,使用jdbctestutils库来查询记录数;为确保预期值输入具备良好的数据类型兼容性,使用object二维数组来存放预期值;为将查询结果与预期值进行比较,使用assertj库来进行结果值断言。

当为了验证经过一系列业务逻辑操作后,数据表中记录数量是否与预期值相同,或者验证对数据记录执行删除业务逻辑操作后,被删除记录是否仍然存在于数据表中。选择的所述测试行为是断言记录数或记录存在性。首先执行业务逻辑操作,使用者编写测试代码执行需要测试的业务逻辑,触发数据表操作行为,然后调用assertrowcount()判断算法对所述业务逻辑操作结果进行判断,assertrowcount()判断算法需传入sql的where语句,以及查询结果的预期值。

当为了验证经过一系列业务逻辑操作后,数据表中记录数的增减量是否与预期值相同。选择的所述测试行为是断言记录数增量。首先调用init()算法重置断言对象,然后执行业务逻辑操作,使用者编写测试代码执行需要测试的业务逻辑,触发数据表操作行为,接着调用assertrowcountdelta()判断算法对所述业务逻辑操作结果进行判断,assertrowcount()判断算法需传入sql的where语句,以及查询结果的预期值。

当为了验证经过一系列业务逻辑操作后,指定记录的数据字段是否与预期值相同。选择的所述测试行为是断言指定记录内容。首先调用addexceptedvalues()方法,以object二维数组的方式传入预期值,其中,第一维是记录项,第二维是记录项所包含预期值,该预期值顺序与所述数据表字段顺序保持一致,然后执行业务逻辑操作,使用者编写测试代码执行需要测试的业务逻辑,触发数据表操作行为,接着调用init()算法和assertonerecordbyid()判断算法对所述业务逻辑操作结果进行判断,assertonerecordbyid()判断算法需传入待比较记录的id值,id值顺序应与传入预期值的顺序保持一致。

当为了验证向数据表新增了一条记录后,所新增的记录字段是否与预期值相同。选择的所述测试行为是断言新增记录内容。首先调用addexceptedvalues()方法,以object二维数组的方式传入预期值,其中,第一维是记录项,第二维是记录项所包含预期值,该预期值顺序与所述数据表字段顺序保持一致,然后执行业务逻辑操作,使用者编写测试代码执行需要测试的业务逻辑,触发数据表操作行为,接着调用init()算法和assertthelastrecordbyid()判断算法对所述业务逻辑操作结果进行判断,该步骤无需传入任何参数。

本发明的有益效果:

(1)以不超过3行代码完成一次数据表操作结果断言,简洁、高效;(2)实现了对记录数的断言;(3)实现了对记录数变化数量的断言;(4)实现了对记录存在性的断言;(5)实现了对记录内容的断言。

以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。

另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。

此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1