[发明专利]一种单元测试方法及系统有效
申请号: | 201911385923.2 | 申请日: | 2019-12-29 |
公开(公告)号: | CN111008153B | 公开(公告)日: | 2023-05-30 |
发明(设计)人: | 魏臻;程磊;汤俊;方莹;徐自军;胡庆新;程运安;徐伟;黄鹏 | 申请(专利权)人: | 合肥工大高科信息科技股份有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 合肥天明专利事务所(普通合伙) 34115 | 代理人: | 金凯 |
地址: | 230088 安*** | 国省代码: | 安徽;34 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 单元测试 方法 系统 | ||
1.一种单元测试方法,其特征在于,用于对含有私有成员的函数或私有函数进行单元测试,包括:
查找原测试用例所在的测试文件,并在测试文件头部添加反射的命名空间的引用;
利用反射访问私有成员或私有函数,编写新的测试用例;
根据新的测试用例,执行单元测试代码,生成测试报告;
在所述利用反射访问私有成员,编写新的测试用例中,包括:
查找所述原测试用例,并实例化被测类;
通过反射方法获取类中的私有字段,以在测试文件中修改原测试用例,并编写所述新的测试用例;
其中,通过反射方法获取类中的私有字段,以在测试文件中修改原测试用例,并编写所述新的测试用例,具体包括:
获取所述被测类类型关联的Type对象t;
利用反射的FieldInfo,发现字段属性并提供对字段元数据的访问权,通过Type对象t,获取所述被测类中的私有字段;
利用FieldInfo类的SetValue方法,设置所述被测类中的私有字段的值,并完成测试用例编写。
2.如权利要求1所述的单元测试方法,其特征在于,在对私有函数进行单元测试时,所述利用反射方法访问私有函数,编写新的测试用例,包括:
在所述测试文件中添加所述私有函数的测试用例,并实例化被测类;
通过反射方法获取被测类中的私有函数,并编写所述新的测试用例。
3.如权利要求2所述的单元测试方法,其特征在于,所述通过反射方法获取被测类中的私有函数,并编写所述新的测试用例,包括:
获取所述被测类类型关联的Type对象t;
利用反射的MethodInfo,发现方法的属性并提供对方法元数据的访问,通过Type对象t,访问所述被测类中的私有函数;
初始化私有函数的参数;
利用MethodInfo类的Invoke方法将所述被测类对象名称和私有方法参数传给Invoke方法,来调用所述私有函数,并编写所述新的测试用例。
4.如权利要求3所述的单元测试方法,其特征在于,在所述私有方法中包含ref或out参数或者函数有返回值时,还包括:
将所述初始化后的私有方法的参数封装进object数组中;
初始化object数组,并调用私有方法查看调用后的参数值或函数的返回值。
5.一种单元测试系统,其特征在于,用于对含有私有成员的函数或私有函数进行单元测试,包括查找模块、反射调用模块和测试模块:
查找模块用于查找原测试用例所在的测试文件,并在测试文件头部添加反射的命名空间的引用;
反射调用模块用于利用反射方法访问私有成员或私有函数,编写新的测试用例;
测试模块用于根据新的测试用例,执行单元测试代码,生成测试报告;
在对含有私有成员的函数进行单元测试时,所述反射调用模块包括查找单元和第一反射调用单元;
查找单元用于查找所述原测试用例,并实例化被测类;
第一反射调用单元用于通过反射方法获取类中的私有字段,以在测试文件中修改原测试用例,并编写所述新的测试用例;
所述第一反射调用单元包括第一获取子单元、第一反射调用子单元、私有字段值获取子单元和私有字段值设置子单元;
第一获取子单元用于获取所述被测类类型关联的Type对象t;
第一反射调用子单元用于利用反射机制的FieldInfo,发现字段属性并提供对字段元数据的访问权,通过Type对象t,获取所述被测类中的私有字段;
私有字段值设置子单元用于利用FieldInfo类的SetValue方法,设置所述被测类中的私有字段的值,并完成测试用例编写。
6.如权利要求5所述的单元测试系统,其特征在于,在对私有函数进行单元测试时,所述反射调用模块包括添加单元和第二反射调用单元;
添加单元用于在所述测试文件中添加所述私有函数的测试用例,并实例化被测类;
第二反射调用单元用于通过反射方法获取被测类中的私有函数,并编写所述新的测试用例。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于合肥工大高科信息科技股份有限公司,未经合肥工大高科信息科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911385923.2/1.html,转载请声明来源钻瓜专利网。