一、单元测试

引入

为什么需要单元测试,而不能自己在main方法中测试?

在main方法中测试,只能手动的规定要测试哪些方法,如果某一个方法出错,就无法再对后续的方法进行测试。

Junit单元测试框架

优点

  1. 可以针对某个方法执行测试,也支持一键完成对全部方法的自动化测试,且各自独立。
  2. 会自动生成测试报告,不需要程序员自行分析测试结果。

步骤

image-20260210172215070

举例

image-20260210173853625

二、反射

加载类,并以编程的方式去解剖类中的各种成分(成员变量、方法、构造器)

1、获取Class对象

image-20260210181751041

2、获取类的构造器

image-20260210182313613

举例:

image-20260210183052417

image-20260210201851089

3、获取类的成员变量

image-20260210183406539

4、获取类的方法

image-20260210203558885

反射的作用

  1. 基本作用:可以得到一个类的全部成分然后操作。
  2. 可以破坏封装性
  3. 可以绕过泛型的约束
  4. 适合做JAVA的框架,主流的框架基本都会基于反射设计出一些通用的功能

三、注解

让其他程序根据注解信息来决定怎么执行该程序。

1、自定义注解

image-20260210211745375

特殊属性名:value

如果注解中只有一个value属性,使用注解时,value名称可以不写。

image-20260210212517722

2、注解的原理

image-20260210212927033

3、元注解

注解某个注解的注解

@Target 声明被修饰的注解只能在哪些位置使用

@Retention 声明注解的保留周期

image-20260210213739184

4、解析注解

image-20260210222606474

举例:

image-20260210222846760

5、注解的应用场景

可以自定义怎么进行测试(比如,使用注解的才测试),根据注解得到不同的测试次数(注解的属性的作用)。

image-20260210225459232

四、动态代理

通过代理转移部分职责

image-20260215191519824

1、为JAVA对象创建代理对象

image-20260215191616676

举例:

image-20260215221657603