Junit
1什么是Junit测试:是白盒测试的一种(白盒测试更高级一些)
2怎么使用Junit类:
1先定义一个测试类:
代码:
:
2运行测试类:
代码:注意@Test后要添加依赖(这里我们测试的是类中的减法)
3查看判定结果(断言):使用assertEquals方法,用断言结果和实际结果进行比较
结果为绿色就是成功
结果为红色就是失败
4补充知识点:@Before和@After,无论测试是否出现异响都会执行
@Before修饰的方法会在所有测试方法之前执行,通常用来申请资源
@After修饰的方法会在所有测试方法之前执行,通常用来释放资源
反射
1什么是反射:反射是对类的属性(成员变量,构造方法,成员方法)的封装,每个部分通过类加载器分别封装成为fields,constructor,method这些class对象,方便我们从内存中对这些方法进行使用。反射是框架设计的灵魂。
String字符串所能调用的这些个方法,都是之前封装好,存在java的method类对象中的,当我们.出这些方法的时候,就启用了反射机制。
2获取字节码Class对象的三种方式
package com.bed.java.Junit.reflect;
//使用三种方式来导出class文件
public class ReflectDemo01 {
public static void main(String[] args) throws Exception {
//第一种方式:直接用class静态方法查看类对象
Class aClass = Class.forName("com.bed.java.Junit.reflect.Person");
System.out.println(aClass);
//第二种方式,通过类名导出class对象
Class aClass1 = Person.class;
System.out.println(aClass1);
//第三种方式通过对象来获取class对象
Person p=new Person();
Class aClass2 = p.getClass();
System.out.println(aClass2);
System.out.println(aClass==aClass1);
System.out.println(aClass==aClass2);
}
}
最后两行为了证明,不论用哪种方式获取,同一个类的.class文件的地址是不变的
3class对象的功能
1.获取成员变量:获取所有成员变量.getfields
获取指定成员变量.getfield("指定名称"