将数据从测试类外部传递到JUnit测试类

时间:2013-01-20 19:46:01

标签: java junit

如何将数据传递到我使用

以编程方式启动的测试类中
junitCore.run(MyAwesomeClass.class);

我需要传入一些基于命令行输入构造的对象。我的程序是一个可执行的jar。

关于我为什么这样做的一些背景。我正在编写一个命令行程序,根据我的QA人员的电子表格输入来驱动测试。我正在尝试测试一些混有Android代码的代码,我想在JVM上运行它。为此,我正在使用Robolectric来填充存根,以便我可以运行,但需要注意的是,您必须使用他们的JUnit测试运行器。

1 个答案:

答案 0 :(得分:0)

你想要的实际上并不是JUnit的使用方式,因为测试类应该是一个完整的可运行的测试代码。

但是,在运行测试类之前,您始终可以使用静态初始化实现所需的内容,例如:

MyAwesomeClass.prepare(myParameter);
junitCore.run(MyAwesomeClass.class);

例如:

public class Test2 {
    private static int param;
    public static void prepare(int param) {
        Test2.param = param;
    }

    @Test public void test() {
        Assert.assertEquals(param, 2);
    }

    public static void main(String[] args) {
        JUnitCore jUnitCore = new JUnitCore();
        Test2.prepare(2);
        jUnitCore.run(Test2.class);
    }
}