代码测试的方法及装置的制造方法_3

文档序号:9865404阅读:来源:国知局
]查找模块321,用于根据被测试函数的访问语句,在全局表中查找外部访问函数的函数名;
[0065]执行模块322,用于执行函数名对应的自定义函数。
[0066]进一步的,添加单元31添加的自定义函数中封装有对应访问语句的不同数据内容;
[0067]返回单元33,用于当多次执行自定义函数时,分别返回不同的数据内容。
[0068]进一步的,添加单元31,用于对全局表进行表替换,将代码更新函数和/或代码修复函数添加到全局表中;
[0069]执行单元32,用于执行代码更新函数和/或代码修复函数,对被测试函数进行热更新和/或热修复。
[0070]进一步的,如图4所示,该装置进一步包括:
[0071]还原单元36,用于对全局表进行表还原,将添加的函数恢复为被替换的函数。
[0072]本发明实施例提供的代码测试的装置,能够在测试代码中添加与外部数据库作用相同的自定义函数。当被测试函数访问外部数据库时,屏蔽被测试函数的访问操作,并执行该自定义函数向被测试函数返回其所请求的数据内容,以便通过对返回数据内容的验证获得被测试函数的测试结果。与现有技术相比,本发明实施例能够通过测试框架中自定义的函数向进行外部访问的被测试函数返回需要的数据内容,测试过程不再依赖外部环境实现,因此可以节省搭建外部环境产生的成本。
[0073]本发明的实施例公开了:
[0074]Al、一种代码测试的方法,其特征在于,所述方法包括:
[0075]在测试代码中添加自定义函数,所述自定义函数用于替代外部数据库向被测试函数返回预设的数据内容;
[0076]执行所述测试代码,屏蔽所述被测试函数访问所述外部数据库的操作并执行所述自定义函数;
[0077]向所述被测试函数返回预设的数据内容;
[0078]对返回的数据内容进行验证,获得所述被测试函数的测试结果。
[0079]A2、根据Al所述的方法,其特征在于,在所述在测试代码中添加自定义函数之前,所述方法进一步包括:
[0080]将所述外部数据库中的数据内容封装到所述自定义函数中。
[0081 ] A3、根据A2所述的方法,其特征在于,所述在测试代码中添加自定义函数,包括:
[0082]对所述测试代码的全局表进行表替换,将所述自定义函数添加到所述全局表中。
[0083]A4、根据A3所述的方法,其特征在于,所述对所述测试代码的全局表进行表替换,将所述自定义函数添加到所述全局表中,包括:
[0084]将所述全局表中的外部访问函数替换为所述自定义函数,并将所述外部访问函数的函数名作为所述自定义函数在所述全局表中的函数名使用;
[0085]其中,所述外部访问函数用于访问所述外部数据库。
[0086]A5、根据A4所述的方法,其特征在于,所述执行所述测试代码,屏蔽所述被测试函数访问所述外部数据库的操作并执行所述自定义函数,包括:
[0087]根据所述被测试函数的访问语句,在所述全局表中查找所述外部访问函数的函数名;
[0088]执行所述函数名对应的所述自定义函数。
[0089]A6、根据A5所述的方法,其特征在于,所述自定义函数中封装有对应所述访问语句的不同数据内容;
[0090]所述向所述被测试函数返回预设的数据内容,包括:
[0091]当多次执行所述自定义函数时,分别返回不同的数据内容。
[0092]A7、根据A3所述的方法,其特征在于,所述方法进一步包括:
[0093]对所述全局表进行表替换,将代码更新函数和/或代码修复函数添加到所述全局表中;
[0094]执行所述代码更新函数和/或代码修复函数,对所述被测试函数进行热更新和/或热修复。
[0095]AS、根据A3至7中任一项所述的方法,其特征在于,所述方法进一步包括:
[0096]对所述全局表进行表还原,将添加的函数恢复为被替换的函数。
[0097]B9、一种代码测试的装置,其特征在于,所述装置包括:
[0098]添加单元,用于在测试代码中添加自定义函数,所述自定义函数用于替代外部数据库向被测试函数返回预设的数据内容;
[0099]执行单元,用于执行所述测试代码,屏蔽所述被测试函数访问所述外部数据库的操作并执行所述自定义函数;
[0100]返回单元,用于向所述被测试函数返回预设的数据内容;
[0101]验证单元,用于对返回的数据内容进行验证,获得所述被测试函数的测试结果。
[0102]B10、根据B9所述的装置,其特征在于,所述装置进一步包括:
[0103]封装单元,用于在测试代码中添加自定义函数之前,将所述外部数据库中的数据内容封装到所述自定义函数中。
[0104]B11、根据BlO所述的装置,其特征在于,所述添加单元用于对所述测试代码的全局表进行表替换,将所述自定义函数添加到所述全局表中。
[0105]B12、根据Bll所述的装置,其特征在于,所述添加单元用于将所述全局表中的外部访问函数替换为所述自定义函数,并将所述外部访问函数的函数名作为所述自定义函数在所述全局表中的函数名使用;
[0106]其中,所述外部访问函数用于访问所述外部数据库。
[0107]B13、根据B12所述的装置,其特征在于,所述执行单元,包括:
[0108]查找模块,用于根据所述被测试函数的访问语句,在所述全局表中查找所述外部访问函数的函数名;
[0109]执行模块,用于执行所述函数名对应的所述自定义函数。
[0110]B14、根据B13所述的装置,其特征在于,所述添加单元添加的所述自定义函数中封装有对应所述访问语句的不同数据内容;
[0111]所述返回单元,用于当多次执行所述自定义函数时,分别返回不同的数据内容。
[0112]B15、根据Bll所述的装置,其特征在于,所述添加单元,用于对所述全局表进行表替换,将代码更新函数和/或代码修复函数添加到所述全局表中;
[0113]所述执行单元,用于执行所述代码更新函数和/或代码修复函数,对所述被测试函数进行热更新和/或热修复。
[0114]B16、根据Bll至15中任一项所述的装置,其特征在于,所述装置进一步包括:
[0115]还原单元,用于对所述全局表进行表还原,将添加的函数恢复为被替换的函数。
[0116]在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0117]可以理解的是,上述方法及装置中的相关特征可以相互参考。另外,上述实施例中的“第一”、“第二”等是用于区分各实施例,而并不代表各实施例的优劣。
[0118]所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0119]在此提供的算法和显示不与任何特定计算机、虚拟系统或
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1