[发明专利]基于注解的Java语言方法覆盖率和方法输入输出统计方法有效
| 申请号: | 201811586770.3 | 申请日: | 2018-12-25 |
| 公开(公告)号: | CN109857637B | 公开(公告)日: | 2022-04-15 |
| 发明(设计)人: | 段建建;刘洋 | 申请(专利权)人: | 杭州茂财网络技术有限公司 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F8/41;G06F8/73 |
| 代理公司: | 杭州丰禾专利事务所有限公司 33214 | 代理人: | 吴双 |
| 地址: | 310012 浙江省杭州*** | 国省代码: | 浙江;33 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 基于 注解 java 语言 方法 覆盖率 输入输出 统计 | ||
1.一种基于注解的Java语言方法覆盖率和方法输入输出统计方法,其特征在于,包括以下步骤:
S1,对新增或修改的方法增加一个编译时注解,编译时注解定义在应用编译的过程中统计被注解的方法的相关信息并记录;
S2,对新增或修改的方法增加一个运行时注解,运行时注解定义在方法被调用时获得该方法相关信息并记录;
S3,编译被测试软件并执行,获取S1和S2所述的相关信息,根据S1和S2所记录的信息计算方法覆盖率,并统计方法的输入输出;
其中,S1包括:
S11,声明一个方法类型的注解接口用于标记方法的注解;
S12,实现注解处理器,包括:
S121,使用JAVA提供的@SupportedAnnotationTypes注解指定该注解处理器用于处理S11中声明好的注解;
S122,注解处理器继承AbstractProcessor类并实现其处理接口;
S123,在处理接口中获得被注解的方法的名称,然后存储;
S2包括:
S21,注解实现:创建一个接口,并利用@Target声明其需要获取方法的输入参数,使用注解@Retention并设置为RetentionPolicy.RUNTIME来声明其为一个运行时注解;
S22,通过运行时注解实现一个切面,该切面实现在被注解方法执行前获得方法的输入参数,在方法执行之后获得方法执行的返回值。
2.根据权利要求1所述的一种基于注解的Java语言方法覆盖率和方法输入输出统计方法,其特征在于,S22包括:
S221,创建一个切面类,在类前添加@Aspect注解及@Component注解;
S222,在类中声明PointCut方法并在该方法前添加注解@Pointcut,指定S1中实现的接口注解与该方法建立关联;
S223,在类中声明Around方法,在该方法上添加@Around注解并指定S222中创建的PointCut方法,该方法用于被注解方法执行前,获得方法的输入参数,在方法执行之后获得方法执行的返回值。
3.根据权利要求1所述的一种基于注解的Java语言方法覆盖率和方法输入输出统计方法,其特征在于,S1中获取并记录的信息包括方法名称;S2中获取并记录的信息包括被调用的方法名称、调用方法的输入参数、输出方法以及调用次数。
4.根据权利要求1所述的一种基于注解的Java语言方法覆盖率和方法输入输出统计方法,其特征在于,通过执行S1中定义的编译时注解和S2中定义的运行时注解后记录的信息存储到服务端,并以列表形式在前端显示。
5.一种基于注解的Java语言方法覆盖率和方法输入输出统计装置,其特征在于,用于执行如权利要求1-4中任一项所述的方法,包括:
注解添加模块,用于对新增或修改的方法增加编译时注解和运行时注解;
注解处理器,用于对注解进行处理,执行编译时注解和运行时注解定义的规则;
软件执行模块,用于编译被测试软件并执行,将获取S1和S2所述的相关信息;
信息存储模块,用于存储并记录S1和S2所述的相关信息。
6.根据权利要求5所述一种基于注解的Java语言方法覆盖率和方法输入输出统计装置,其特征在于,包括服务器,服务器调用并处理信息存储模块中存储的信息计算方法覆盖率和方法的输入输出。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州茂财网络技术有限公司,未经杭州茂财网络技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811586770.3/1.html,转载请声明来源钻瓜专利网。





