2013-04-25 80 views
1

我想在jar庫中測試一個方法,並且希望能夠使用Robolectric來做我的單元測試,而不是在Android模擬器中運行測試。我遇到了一個問題,雖然Robolectric需要一個不存在的androidmanifest.xml文件,因爲我正在構建一個庫...我可以使用Robolectric來測試靜態庫罐嗎?

有什麼方法可以在沒有應用程序的情況下運行Robolectric測試嗎?

下面是測試我的測試案例和代碼如下所示:

public class ObjectUnderTest { 
    methodUnderTest(View v) { 
     ... 
    } 
} 

@RunWith(RobolectricTestRunner.class) 
public class Tests { 
    @Test 
    public void methodUnderTest_Test() { 
     ... 
    } 
} 

當我運行測試套件我從Robolectric一個FileNotFoundException異常尋找AndroidManifest.xml中。我嘗試過使用JUnit4測試運行器,但是我得到了「Stub!」。當我爲methodUnderTest()的參數創建一個View時發生異常。

除了爲單元測試創​​建存根應用程序之外,有沒有辦法做到這一點?謝謝!

+0

你爲什麼要測試Android項目以外的庫?也是這個jar庫或apklib?你對這個圖書館有控制嗎? – 2013-05-08 05:03:50

+0

這是一個jar庫。我希望我只需要一個測試項目來簡化我的代碼庫,而不是一個測試項目和一個線束應用程序。 – Greg 2013-05-10 19:03:51

回答

1

這取決於您使用的Robolectric。

如果你使用2.0,你可以嘗試用@Config註解你的測試類(manifest = Config.NONE)。

如果使用1.x的,我認爲這是可行的,但需要更多的努力:

  1. 你應該文件夾中創建類似於Android項目結構,創建虛擬AndroidManiifest.xml內
  2. 您應該擴展RobolectricTestRunner和通過構造函數路徑到這個假Android項目
相關問題