2014-11-21 128 views
0

我有一个关于JUnit中参数化测试的问题。我正在运行一个包含所有测试类的测试套件,我的课程需要有一个测试套件来运行我的所有测试类,所以我无法修改它。问题是我有一大堆的Entry对象(让我们把它当作一个唯一ID从1开始的对象,每当它创建一个新的实例时就增加),并且它们正在被JUnit预处理。在编译和运行我的程序时,我有在ParamTest类中声明的9个条目。在另一个班级(EntryTest)中,我有一个已创建的条目,它的ID应为1。但是,它的ID为10,表示参数化测试类的9个条目已经事先创建。JUnit参数化测试处理

我的问题是,有无论如何强迫ParamTest类没有做任何预处理之前EntryTest类运行或这是不可能的。在套件中,我确定在ParamTest之前声明EntryTest。如果无论如何我都可以解决这个问题,而不是单独创建单独的套件或单独运行测试?我在想一个公共的静态int来跟踪预处理量的ID,但这听起来像是一个丑陋的解决方案。

回答

0

我认为你的测试会变得越来越难看,除非你有办法将静态类重置为已知状态。

我建议你公开一个包私钥方法,它允许你重置某个特定的ID值(例如0)。

即使在相同的测试类别中,测试也应该完全独立。