重构与单测总结
作者:网络转载 发布时间:[ 2012/9/17 11:38:45 ] 推荐标签:
3.2 策略模式的运用(Strategy)
先看一下原来的类:
这种类型的代码在系统中较多地出现,有时候是以switch—case的形式,但更多的时候是根据条件的不一样选择不同的处理逻辑。当然现在的这个例子是简化后的,实际上handle中的选择分支更多,而private中的方法也不一定只有15行。对于这样的类和方法我们测试势必很难,因为重要的逻辑几乎在handleAtrade(),handleBtrade(),handleCtrade()里面,而这些方法在接口类MultiBranchService中是没有的。
从代码本身来讲,这样写代码并不符合开闭原则(对扩展开放,对修改关闭),因为如果将来多了一种处理逻辑,需要新增一个private方法,然后在handle加个else if分支。对于这种情况可以采用策略模式解决,先定义一个策略的上下文,它只负责调用各种处理:
可以看到本质上StrategyContext和MultiBranchServiceImpl没有本质的区别,只是将处理的具体逻辑注入进来了。现在要测试handle方法可以参考3.1中后测试fa?ade中的handle方法,只需测试type取不同值时响应的strategyHandle是否被调用。现在来看一下TradeStrategy,它只是一个接口:
对于A/B/C行业的处理逻辑是TradeStrategy的实现:
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11