1

如何将数据传递到我以编程方式开始的测试类中

junitCore.run(MyAwesomeClass.class);

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

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

4

1 回答 1

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);
    }
}
于 2013-01-20T23:38:50.547 回答