基础篇-Java基础加强
01 | 导读
1、测试分类:白盒测试和黑盒测试
2、Java代码的三个阶段:Source源代码阶段、Class类对象阶段、Runtime运行时阶段
02 | Junit单元测试
1、测试分类
1)黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值。
2)白盒测试:需要写代码的。关注程序具体的执行流程。
2、Junit使用:白盒测试步骤
1、定义一个测试类(测试用例)
- 测试类名:被测试的类名Test CalculatorTest
- 包名:xxx.xxx.xx.test cn.itcast.test
2、定义测试方法:可以独立运行
- 方法名:test测试的方法名 testAdd()
- 返回值:void
- 参数列表:空参
3、给方法加@Test
4、导入junit依赖环境
3、Junit使用:白盒测试结果判定
1、红色:失败;绿色:成功
2、一般我们会使用断言操作来处理结果:Assert.assertEquals(期望的结果, 运算的结果);
3、 @Before: 修饰的方法会在测试方法之前被自动执行
4、@After:修饰的方法会在测试方法执行之后自动被执行
03 | 反射:框架设计的灵魂
1、框架:半成品软件,可以在框架的基础上进行软件开发,简化编码
2、反射
1、定义:将类的各个组成部分封装为其他对象,这就是反射机制
2、好处:
- 可以在程序运行过程中,操作这些对象。
- 可以解耦,提高程序的可扩展性。
3、获取Class对象的方式
1、Class.forName(“全类名”):将字节码文件加载进内存,返回Class对象;
- 多用于配置文件,将类名定义在配置文件中。读取文件,加载类
2、类名.class:通过类名的属性class获取
- 多用于参数的传递
3、对象.getClass():getClass()方法在Object类中定义着。
- 多用于对象的获取字节码的方式
4、结论:同一个字节码文件(*.class)在一次程序运行过程中,只会被加载一次,不论通过哪一种 方式获取的Class对象都是同一个。
public class JAVATest {
public static void main(String[] args) throws ClassNotFoundException {
//1. Class.forName(""全类名)
Class cls1 = Class.forName("com.test.Person");
System.out.println(cls1);
//2. 类名.class
Class cls2 = Person.class