【发布时间】:2013-04-11 09:45:45
【问题描述】:
我正在寻找一种方法来收集和发布这些myResults。但是Junit@AfterClass只支持静态方法。
如果我有一个超类如果正在运行多个测试用例,它可能很难看。知道如何解决这个问题吗?如果我使用 after,我不会得到 myresult 收集的完整输出
abstract class MainTestCase{
static List<String> myResults = new ArrayList();
@AfterClass public static void WrapUp() {
//code to write the myResults to text file goes here
System.out.println("Wrapping Up");
myResults.clear()
}
}
@RunWith(Theories.class)
public class TheoryAfterClassTest extends MainTestCase {
@DataPoint
public static String a = "a";
@DataPoint
public static String b = "bb";
@DataPoint
public static String c = "ccc";
@Theory
public void stringTest(String x, String y) {
myResults.add(x + " " + y);
System.out.println(x + " " + y);
}
}
【问题讨论】:
-
如果将
WrapUp()设为静态会发生什么? -
另外,您可能想看看使用参数化测试。这些也许可以让你一起摆脱继承层次结构。
-
@Code-Guru 如何确保从超类扩展的其他测试用例不受影响。我显然不想混淆它们。有什么建议吗?
-
@Code-Guru 我的真实代码由对象组成,所以理论很适合我。
-
你的意思是如果多个测试用例并行运行会很难看?