通过 JUnit 学习模板方法模式和策略模式
当写完一段代码,然后通过JUnit进行测试框架进行测试时,我们只需要继承TestCase类,如果需要的话一下SetUp和tearDown函数,并写好testXxx(),进行实际的测试。Jave就可以自主跑出测试结果。
测试例子如下:
但是JUnit又是如何执行的?为什么按照JUnit规定的格式编写,运行后就可以自行输出测试情况?
这里用到了一个最基本的模式之一:模板方法模式
百度百科模板方面模式的定义为:
模板方法模式定义了一个算法的步骤,并允许子类别为一个或多个步骤提供其实践方式。让子类别在不改变算法架构的情况下,重新定义算法中的某些步骤。
其实在JUnit中TestCase定义了模板方法runBare,runBare中定义了,先运行SetUp方法,在运行一系列的类似于testXxx()的方法,最后运行tearDown进行收尾。这个runBare就是定义中所说的算法步骤。
我们定义的子类继承自TestCase类,但是重写了SetUp等函数,定义了testXxx()函数,这样运行测试时,runBare调用子类中的方法,从而实现这对不同测试用例的测试。
模板方法的模板的流程在基类中定义,模板的实现在子类中完成。
此外,JUnit框架中还隐藏着策略模式。
策略模式有三部分应用程序、策略接口和策略实现。
一个是Eclipse应用程序,TestCase策略接口,AddTests策略实现。基于TestCase可以写多个实现类,在Eclipse调用TestCase,但是在真正执行时,执行的AddTests。
评论