[发明专利]一种自动mock外部依赖的方法及装置有效
申请号: | 201410370258.0 | 申请日: | 2014-07-30 |
公开(公告)号: | CN105335281B | 公开(公告)日: | 2018-03-20 |
发明(设计)人: | 孙琛 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京弘权知识产权代理事务所(普通合伙)11363 | 代理人: | 逯长明,许伟群 |
地址: | 开曼群岛*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 自动 mock 外部 依赖 方法 装置 | ||
1.一种自动mock外部依赖的方法,其特征在于,包括:
获取被测代码的名称,以及获取所述被测代码调用外部依赖的调用参数和调用次数,所述获取被测代码的名称,以及获取被测代码调用外部依赖的调用参数和调用次数,包括:拦截所述被测代码对外部依赖的调用,记录被测代码的名称、调用参数和调用次数;
获取所述外部依赖对所述调用产生的返回值或者返回对象;
根据所述被测代码的名称、调用参数和调用次数生成mock特征值,所述mock特征值为唯一的表征所述被测代码的名称、调用参数和调用次数的值;
将所述外部依赖的返回值或者返回对象序列化为返回文本;
将所述mock特征值与所述返回文本对应,所述mock特征值和对应的所述返回文本构成mock对象。
2.如权利要求1所述的自动mock外部依赖的方法,其特征在于,所述获取所述外部依赖对所述调用产生的返回值或者返回对象,包括:
根据所述调用参数和调用次数调用外部依赖;
记录外部依赖的返回值或者返回对象。
3.如权利要求1所述的自动mock外部依赖的方法,其特征在于,根据被测代码的名称、调用参数和调用次数使用哈希算法生成mock特征值。
4.一种自动mock外部依赖的装置,其特征在于,包括:
被测端数据获取模块,用于获取被测代码的名称,以及获取被测代码调用外部依赖的调用参数和调用次数,所述被测端数据获取模块,包括:
被测端拦截子模块,用于拦截被测代码对外部依赖的调用;
被测端记录子模块,用于记录被测代码的名称、调用参数和调用次数;
外部端数据获取模块,用于获取外部依赖对所述调用产生的返回值或者返回对象;
mock对象生成模块,用于根据被测代码的名称、调用参数和调用次数生成mock特征值,将所述外部依赖的返回值或者返回对象序列化为返回文本,且将所述mock特征值与所述返回文本对应,所述mock特征值和对应的返回文本构成mock对象,其中,所述mock特征值为唯一的表征所述被测代码的名称、调用参数和调用次数的值;
存储模块,用于存储所述mock对象。
5.如权利要求4所述的自动mock外部依赖的装置,其特征在于,所述外部端数据获取模块,包括:
调用子模块,用于根据所述调用参数和调用次数调用外部依赖;
外部端记录子模块,用于记录外部依赖的返回值或者返回对象。
6.如权利要求4所述的自动mock外部依赖的装置,其特征在于,所述mock对象生成模块,包括:
mock特征值生成子模块,用于根据被测代码的名称、调用参数和调用次数生成mock特征值;
序列化子模块,用于将所述外部依赖的返回值或者返回对象序列化为返回文本;
构建子模块,用于将所述mock特征值与所述外部依赖的返回值或者返回对象对应,所述mock特征值和对应的所述外部依赖的返回值或者返回对象构成mock对象。
7.一种mock测试方法,其特征在于,包括:
拦截被测代码对外部依赖的调用;
获取被测代码的名称、调用参数和调用次数;
根据所述被测代码的名称、调用参数和调用次数生成调用特征值,且所述调用特征值的生成方法和mock对象中mock特征值的生成方法相同,所述调用特征值为唯一的表征所述被测代码的名称、调用参数和调用次数的值;
根据所述调用特征值在mock对象中查找对应的返回文本;
反序列化所述返回文本,得到外部依赖的返回值或者返回对象;
将所述返回值或者返回对象返回给被测代码;
验证所述返回值或者返回对象。
8.一种mock测试装置,其特征在于,包括:
调用拦截模块,用于拦截被测代码对外部依赖的调用;
数据获取模块,获取被测代码的名称、调用参数和调用次数;
调用特征值生成模块,用于根据所述被测代码的名称、调用参数和调用次数生成调用特征值,且所述调用特征值的生成方法和mock对象中mock特征值的生成方法相同,所述调用特征值为唯一的表征所述被测代码的名称、调用参数和调用次数的值;
查找模块,用于根据所述调用特征值在mock对象中查找对应的返回文本;
反序列化模块,用于反序列化所述返回文本,得到外部依赖的返回值或者返回对象;
返回模块,用于将所述返回值或者返回对象返回给被测代码;
验证模块,用于验证所述返回值或者返回对象。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410370258.0/1.html,转载请声明来源钻瓜专利网。