package test;
import demo.Demo;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
public class
DemoTest
//单元测试
{
@Before
public void ask(){
System.out.println(“ask”);
}
@After
public void close(){
System.out.println(“close”);
}
@Test
public void testadd(){
System.out.println(“testadd”);
Demo demo = new Demo();
int add = demo.add(1, 3);
Assert.assertEquals(4,add);
}
}
package demo;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.lang.annotation.Annotation;
import java.lang.reflect.Method;
public class
CheckTest
//测试框架
{
public static void main(String[] args) throws IOException {
Demo demo = new Demo();
Class aClass = demo.getClass();
Method[] methods = aClass.getMethods();
int num=0;
BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(“bug.txt”));
for(Method method:methods){
if(method.isAnnotationPresent(Cheak.class)){
try {
method.invoke(demo);
}catch (Exception e){
num++;
bufferedWriter.write(method.getName()+“方法出异常了”);
bufferedWriter.newLine();
bufferedWriter.write(“异常的名称:”+e.getCause().getClass().getSimpleName());
bufferedWriter.newLine();
bufferedWriter.write(“异常的原因:”+e.getCause().getMessage());
bufferedWriter.newLine();
bufferedWriter.write("-------------------------------------------");
bufferedWriter.newLine();
}
}
}
bufferedWriter.write(“本次共出现”+num+“次异常”);
bufferedWriter.flush();
bufferedWriter.close();
}//main
}//end
package demo;
public class
Demo
{
/**
- 加法
- @param a
- @param b
- @return
*/
public int add(int a,int b){
return a+b;
}
@Cheak
public void div(){
System.out.println(“1/0=”+(1/0));
}
}
package demo;
import java.lang.annotation.*;
@Target(ElementType.METHOD)//作用位置
@Retention(RetentionPolicy.RUNTIME)//作用阶段
@Documented//注解能被抽取到文档中
@Inherited//注解能被子类方法继承
public
@interface Cheak
{
}