使用通常Java类的静态final变量的JUnit行为

时间:2016-01-15 21:07:30

标签: java junit4 final static-members

假设我想使用预定义的静态最终列表实例作为测试的某些“配置”的持有者。   这是一个列表,所以我使用static {}块,其中一些值被添加到实例中:

SELECT 
    id, foreignKey1 
FROM 
    tableA 
    (SELECT id FROM tableB WHERE ID = foreignKey1);

我将在JUnit测试类中使用这些实例。 我想,由于这个定义+注释,测试运行错误“没有找到测试”?

2 个答案:

答案 0 :(得分:0)

我认为模板中缺少@Test注释。编译器抱怨"没有找到任何测试"因为它无法在测试类定义中找到任何带有junit 4 @Test注释的测试方法。

答案 1 :(得分:0)

虽然我无法重现您的问题,但应尝试以下方法:

public class Config{
    ...
  public static final List<Object[]> config = createConfig();

  private static List<Object[]> createConfig() {
    List<Object[]> config = new ArrayList<>();
    config.add(new Object[] { ... whatever});
    config.add(new Object[] { ... whatever});
    config.add(new Object[] { ... whatever});
  }
}

或直接将此createConfig直接放入方法config