如何将数据传递到我使用
以编程方式启动的测试类中junitCore.run(MyAwesomeClass.class);
我需要传入一些基于命令行输入构造的对象。我的程序是一个可执行的jar。
关于我为什么这样做的一些背景。我正在编写一个命令行程序,根据我的QA人员的电子表格输入来驱动测试。我正在尝试测试一些混有Android代码的代码,我想在JVM上运行它。为此,我正在使用Robolectric来填充存根,以便我可以运行,但需要注意的是,您必须使用他们的JUnit测试运行器。
答案 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);
}
}