2013-01-20 69 views
1

如何傳遞數據到測試類的外部JUnit測試I類將數據傳遞到從測試類

junitCore.run(MyAwesomeClass.class); 

我需要構建一些對象通過基於命令行輸入編程方式啓動。我的程序是一個可執行的jar。

我爲什麼要這麼做的一個小背景。我正在編寫一個命令行程序,根據來自電子表格的輸入爲我的QA人推動測試。我試圖測試一些混有Android代碼的代碼,並且我想在JVM上運行它。爲此,我使用Robolectric填充存根以便我可以運行,但需要注意的是,您必須使用他們的JUnit測試運行器。

+0

沒有嘗試[JUnitCore#的addListener] (http://junit.sourceforge.net/javadoc/org/junit/runner/JUnitCore.html#addListener(org.junit.runner.notification.RunListener))? – Archer

+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); 
    } 
} 
+0

我試過了,數據被清除了。 –

+0

你是什麼意思?數據如何被「消滅」? – Daniil

+0

一切都是空的。 –