一、单元测试
任何应用程序,在正式发布之前,都需要经过测试,确定应用程序的功能能够满足程序设计的要求。
每个应用程序的都有很多功能,代码也会有很多,少则几万行,多则数十万行。如果等所有的功能都开发完毕,再进行测试,一旦出了bug,由于代码错综复杂,很难排查问题。
所以,实际开发中,需要以功能为单位,设计测试。每写完一个功能,就对这个功能的完整性进行测试,如果所有的功能测试都没有问题,那么整个应用程序就没有问题
测试分类:
黑盒测试: 不需要写测试代码
白盒测试: 需要测试代码
junit测试框架:
由apache提供的一种测试框架,可以简化测试代码的编写
使用:
1.导入junit 的 jar包
2.定义测试类
类名规范:被测试类名+Test
3.定义测试方法
权限修饰符:public
返回值类型:void
方法名:test+被测试方法名
参数列表:空
4.在测试方法上添加@Test注解
5.运行测试方法
@Before注解:
添加该注解的方法,在所有测试方法执行之前执行,一般用来初始化资源(加载配置文件)
@After注解:
添加该注解的方法,在所有测试方法执行之后执行,一般用来释放资源
二、动态代理
设计模式:
计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。
常见设计模式(23种):
适配器模式(Adapter Pattern)
桥接模式(Bridge Pattern)
过滤器模式(Filter、Criteria Pattern)
装饰器模式(Decorator Pattern)
模板模式(Template Pattern)
代理模式(Proxy Pattern)
......
代理模式:
解决的问题:
在不修改源码的基础上,对功能(方法)进行增强
三要素:
共用接口:为了规定代理对象和被代理对象有共同的行为(方法)
被代理对象:背后真正做事情的对象
代理对象:与用户打交道的对象,会调用被代理对象完成功能
实现:
1.定义接口
2.创建被代理对象
3.创建代理对象
4.用户调用代理对象的方法完成功能
1,问题导入
public class Demo {
public static void main(String[] args) {
System.out.println("程序开始运行");
//求1-10之和
int sum = 0;
for(int i = 1; i <= 10; i++) {
System.out.println("第" + i + "次循环");
sum += i;
}
System.out.println("1-10之和为&