美文网首页java复习
2020-08-11简单的测试框架

2020-08-11简单的测试框架

作者: 智障猿 | 来源:发表于2020-08-16 21:29 被阅读0次
    public class Calculator {
        @Check
        public void add(){
            System.out.println(1+2);
        }
        @Check
        public void sub(){
            System.out.println(2-1);
        }
        @Check
        public void mul(){
            System.out.println(2*8);
        }
        @Check
        public void div(){
            System.out.println(1/0);
        }
    }
    
    import java.lang.annotation.ElementType;
    import java.lang.annotation.Retention;
    import java.lang.annotation.RetentionPolicy;
    import java.lang.annotation.Target;
    
    @Target({ElementType.METHOD})
    @Retention(RetentionPolicy.RUNTIME)
    public @interface Check {
    }
    
    import java.io.BufferedWriter;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.lang.reflect.Method;
    
    public class TestCheck {
    
        public static void main(String[] args) throws IOException {
            int num=0;//记录出现异常的次数
            BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter("check.txt"));
            //1.创建计算器对象
            Calculator calculator = new Calculator();
            //2.获取字节码对象
            Class<? extends Calculator> aClass = calculator.getClass();
            //3.获取所有方法
            Method[] declaredMethods = aClass.getDeclaredMethods();
            //4.判断方法上是否有Check注解
            for (Method method:declaredMethods){
                if (method.isAnnotationPresent(Check.class)){
                    try {
                        //5.执行
                        method.invoke(calculator);
                    }catch (Exception exception){
                        //6.捕获异常,记录到文件中
                        num++;
                        bufferedWriter.write(method.getName()+"方法出现异常");
                        bufferedWriter.newLine();
                        bufferedWriter.write(String.valueOf(exception.getCause().getClass().getSimpleName()));
                        bufferedWriter.newLine();
                        bufferedWriter.write(exception.getCause().getMessage());
                        bufferedWriter.newLine();
                        bufferedWriter.write("______________________________");
                    }
                }
            }
            bufferedWriter.write("本次测试一共出现"+num+"次异常");
            bufferedWriter.flush();
            bufferedWriter.close();
        }
    }
    

    相关文章

      网友评论

        本文标题:2020-08-11简单的测试框架

        本文链接:https://www.haomeiwen.com/subject/zyledktx.html