2014-01-24 21 views
1

我有多个参数化测试类,它们采用完全相同的参数。当我运行测试时,每个人都调用它的data()方法,该方法返回测试执行的参数。几个JUnit测试类的相同参数

我的问题是,我所有的data()方法是相同的,并创建相同的参数,我不知道如何删除这个重复的代码。

目标是让一个函数计算所有测试类的参数。

如果你有任何想法如何做,它会帮助我很多。

感谢

回答

1

随口说说,我说你有两个经典的OO选项 - 继承和包容。

有了继承,你只要把data()方法在一些基础类:

public class MyTestCaseBase { 
    @Parameters 
    public static Collection<Object[]> data() { 
     return ... 
    } 
} 

public class MyTest extends MyTestCaseBase { 
    // tests 
} 

有了包容你会把自己扩展不同类别的选项,但需要做更多的“管道”自己:

public class MyTestParameters { 
    public static Collection<Object[]> data() { 
     return ... 
    } 
} 

public class MyTest { 
    @Parameters 
    public static Collection<Object[]> data() { 
     return MyTestParameters.data(); 
    } 

    // tests... 
} 
+0

谢谢,我想过继承,但不知道它是否非常相关。 – zelus