成为高薪测试你必须知道的设计模式四

it2023-06-04  72

自动化测试中,一些功能是公共功能,很多模块都会用到,只是在不同的模块中方法会一些差异而已。

 

比如我们需要对请假流程、报销流程进行自动化。经过分析,我们发现:

请假:用户需要先登录、然后请假(提交)、相关人员登录系统开始审批;

报销:用户需要先登录,然后创建报销申请单(提交)、相关人员登录系统开始审批;

 

经过分析,登录是公共功能,请假单、报销单部分则需要单独处理,相关人员审批这块有共性的地方,也有各自的特性(报销系统需要上传附件这种)。设计的时候,审批功能就可以采用模板模式进行设计和代码编写。

 

话不多说,先上代码,来点直观的感受吧。

 

1、模板模式的实现

 

1.1 实现公共方法

package java模板模式2; //定义审批接口 public abstract class approvalDemo { void approval(){ System.out.println("这是一个流程:"); } }

1.2 实现具体对象

package java模板模式2; //请假审批流程 public class leaveApproval extends approvalDemo { public void approval1() { System.out.println("这是员工请假审批流程"); System.out.println("事假只需要直属领导审批..."); } public void approval2(){ System.out.println("这是员工请假审批流程"); System.out.println("请婚假需要人事审批..."); } }   package java模板模式2; //报销审批流程 public class reimbursementApproval extends approvalDemo { public void approval3() { System.out.println("这是报销审批流程..."); }   public void approval4(){ System.out.println("这是一个需要上传附件的报销审批流程..."); } }

1.3 实现测试方法

package java模板模式2;   public class testMain {   public static void main(String [] args){ System.out.println("--------------------------------------------------------"); System.out.println("开始测试请假审批流程..."); leaveApproval la = new leaveApproval(); la.approval(); la.approval1(); la.approval2(); System.out.println("请假审批流程测试完成..."); System.out.println("------------------"); System.out.println("开始测试报销审批流程..."); reimbursementApproval ra = new reimbursementApproval(); ra.approval(); ra.approval3(); ra.approval4(); System.out.println("报销审批流程测试完成..."); System.out.println("--------------------------------------------------------"); } }

查看程序执行结果:

--------------------------------------------------------

开始测试请假审批流程...

这是一个流程:

这是员工请假审批流程

事假只需要直属领导审批...

这是员工请假审批流程

请婚假需要人事审批...

请假审批流程测试完成...

------------------

开始测试报销审批流程...

这是一个流程:

这是报销审批流程...

这是一个需要上传附件的报销审批流程...

报销审批流程测试完成...

--------------------------------------------------------

 

2、总结

显然使用了模板模式后,代码清晰了很多,公共的功能做了统一处理,具体子类用的时候直接引用就好了。另外为防止恶意操作,一般模板方法都加上 final 关键词。

最新回复(0)