要测试的Java文件:

package com.框架测试;/** @Auther: JingZ* @Description: com.框架测试* @version: 1.0*/
public class Calculator {@Checkpublic void add(){System.out.println("1+0="+(1+0));}@Checkpublic void sub(){System.out.println("1-0="+(1-0));}@Checkpublic void mul(){System.out.println("1*0="+(1*0));}@Checkpublic void div(){System.out.println("1/0="+(1/0));}public void show(){System.out.println("永无BUG!!!!!!!!!!!!!!!");}
}

注解代码(Check):

package com.框架测试;import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;/** @Auther: JingZ* @Description: com.框架测试* @version: 1.0*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
@interface Check {
}

测试文件:

package com.框架测试;import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.lang.reflect.Method;/** @Auther: JingZ* @Description: com.框架测试* @version: 1.0*/
public class TestCheck {public static void main(String[] args) throws IOException {//创建对象final Calculator c = new Calculator();//获取字节码文件对象final Class<? extends Calculator> cls = c.getClass();//获取所有方法final Method[] methods = cls.getMethods();int number=0;final BufferedWriter bw = new BufferedWriter(new FileWriter("bug.txt"));for (Method method : methods) {//判断方法上是否有Check注解if (method.isAnnotationPresent(Check.class)){try {method.invoke(c);} catch (Exception e) {//捕获异常,记录到文件中number++;bw.write( cls.getSimpleName()+"类中的"+method.getName()+"方法,出异常了!");bw.newLine();bw.write("异常名称:"+e.getCause().getClass().getSimpleName());bw.newLine();bw.write("异常原因:"+e.getCause().getMessage());bw.newLine();bw.write("-----------*测试*-----------");bw.newLine();}}}bw.write("-------% 本次测试共计"+number+"异常! %-------");bw.flush();bw.flush();}
}

测试结果:

Java简单框架测试-(添加注解)相关推荐

  1. java 简单 框架_java简单框架设计

    设计框架包可以作为一个工具给大家用,需要有完全不同设计思路给出来,不同于我们去做一个web服务.网站. 或者一个业务微服务,需要从原来使用视角转换成一个构建者视角. 框架或者工具,更多是框架来管理或者 ...

  2. java 简单框架_最简单的Java框架

    本文介绍何谓框架,并提供了一个最简单的框架--对两个double操作后返回一个double值. 1.何谓框架 框架/framework的目的,是定义一个骨架式方案,处理各种应用中面临的共同的底层细节: ...

  3. 注解_案例_简单的测试框架

    * 案例:简单的测试框架 * 小结:     1. 以后大多数时候,我们会使用注解,而不是自定义注解     2. 注解给谁用?         1. 编译器         2. 给解析程序用    ...

  4. 二、Java框架之Spring注解开发

    文章目录 1. IOC/DI注解开发 1.1 Component注解 @Component @Controller @Service @Repository 1.2 纯注解开发模式 1.3 注解开发b ...

  5. java spring框架 注解_史上最全的java spring注解

    史上最全的java spring注解,没有之一 注解是个好东西,但好东西我们也是看见过,整理过,理解过,用过才知道好.不求我们每个都记住,但求保有印象,在需要的时候能提取出来再查找相关资料,平时工作就 ...

  6. java contains_Java常用测试框架大全,不要只会Junit

    介绍 要做好测试驱动开发,意识习惯最重要,其次也得回编写优雅的单元测试.java测试框架很多,各种断言和注解,有点混乱,编写测试时老师搞不清该用哪个. 本文简单梳理java常用的几个测试工具:Juni ...

  7. Java自动化测试框架-11 - TestNG之annotation与并发测试篇 (详细教程)

    1.简介 TestNG中用到的annotation的快速预览及其属性. 2.TestNG基本注解(注释) 注解 描述 @BeforeSuite 注解的方法只运行一次,在当前suite所有测试执行之前执 ...

  8. java bdd 框架_开发者测试: 实现BDD测试框架(JSpec)

    There are two ways of constructing a software design. One way is to make it so simple that there are ...

  9. java ast 添加注解_基于AST的组件化自动插桩方案

    本文将带你实现一个一百多行代码实现的自动化插桩方案,解决组件化子模块的初始化和路由器的自动注册,支持多种类型的插桩.支持前插后插.支持插入代码的优先级设置.我们将使用编辑器的API来操作AST实现代码 ...

最新文章

  1. linux ant安装jar,ant打JAR、WAR包
  2. Appendix之setup.py:附录文件内容记录setup.py
  3. linux 多源代码文件编译
  4. linux 常见命令 cp,Linux 常用命令之cp,一个可以煮饭的工具;
  5. python字典用法大全
  6. linux oracle查询乱码问题,linux中oracle中文乱码解决方法
  7. 北京地铁票价查询系统 c++ Dijkstra算法
  8. JAVA匿名实现多线程
  9. Drools 规则引擎一文读懂
  10. 线性定常系统参数辨识-(数学建模与系统辨识——NJUST)
  11. 星星之火-26:3G CDMA系统中单用户的扩频原理
  12. MAL-PEG-Cholesterol,MAL-PEG-CLS
  13. 挪威是这样养三文鱼的--转帖
  14. 关于PEAP认证的过程说明
  15. 通过高德api获取经纬度
  16. Android Base64解码失败问题
  17. 电子会员卡管理系统卡具配置
  18. 多用户商城系统商品表设计
  19. 纯HTML+CSS 画奥运五环标志,我就是闲的
  20. 友达9.87MW隆科太阳能屋顶完成,还将增21MW

热门文章

  1. php处理二进制数据
  2. 芯片破壁者(二):半导体“硅”铺就的文明阶梯
  3. 焊接机器人编程及调试方法
  4. 客流分析统计摄像头可定制算法程序自动判断识别提醒
  5. Android--- 筛选框需求(1)房产类APP条件筛选框,包含区域(单选,多选),竖着排列(单选,多选),横向排列(单选,多选)
  6. 60行代码 5分钟开发一个数字货币行情软件
  7. shell脚本编写遇到的问题--循环
  8. 3D Deeply Supervised Network for Automatic Liver Segmentation from CT Volumes
  9. 提高新股申购中签率——程序猿五招
  10. IDEA 设置保存时自动格式化代码 - 中文界面