通过 JUnit 学习模板方法模式和策略模式

发布于: 2020 年 06 月 24 日

当写完一段代码,然后通过JUnit进行测试框架进行测试时,我们只需要继承TestCase类,如果需要的话一下SetUp和tearDown函数,并写好testXxx(),进行实际的测试。Jave就可以自主跑出测试结果。

测试例子如下:

public class AddTests extends TestCase {
private Integer[] array;
private Sorter sorter;
protected void setUp() {
add = new Add();
}
public void testSort() {
assertEquals(add.add(1, 2), 3);
}

但是JUnit又是如何执行的?为什么按照JUnit规定的格式编写,运行后就可以自行输出测试情况?

这里用到了一个最基本的模式之一:模板方法模式

百度百科模板方面模式的定义为:

模板方法模式定义了一个算法的步骤,并允许子类别为一个或多个步骤提供其实践方式。让子类别在不改变算法架构的情况下,重新定义算法中的某些步骤。

其实在JUnit中TestCase定义了模板方法runBare,runBare中定义了,先运行SetUp方法,在运行一系列的类似于testXxx()的方法,最后运行tearDown进行收尾。这个runBare就是定义中所说的算法步骤。

我们定义的子类继承自TestCase类,但是重写了SetUp等函数,定义了testXxx()函数,这样运行测试时,runBare调用子类中的方法,从而实现这对不同测试用例的测试。

模板方法的模板的流程在基类中定义,模板的实现在子类中完成。

此外,JUnit框架中还隐藏着策略模式。

策略模式有三部分应用程序、策略接口和策略实现。

一个是Eclipse应用程序,TestCase策略接口,AddTests策略实现。基于TestCase可以写多个实现类,在Eclipse调用TestCase,但是在真正执行时,执行的AddTests。

用户头像

破晓_dawn

关注

慢慢,稳稳 2017.12.06 加入

业余选手,但是有一颗向往专业的心

评论

发布
暂无评论
通过JUnit学习模板方法模式和策略模式