2010-10-20 149 views
1

我有兩個項目,我的主要Android應用程序和另一個測試項目,運行在該android應用程序之上。從AndroidTestProject加載文本文件

我在我的android測試項目中放置了一個文本文件,該文件包含信息xml內容。 xml內容是我的Android應用程序在我打開服務器時收到的內容。

我在我的Android測試項目中使用TestCase類來測試這一點功能。不幸的是,我在將內容加載到我的Android測試項目時遇到問題。每次我嘗試將文件加載到我的Android測試項目中時,都找不到文本文件。我是否可以說我能得到該文件的唯一方法是將其從我的Android測試項目中刪除,並將其放到我的實際Android項目中,或者我錯過了一些可以從我的Android測試項目加載文件的東西。

詳情: 在我的Android測試項目我一直在我的文件在/ RES /生/ TESTFILE 當我嘗試做

File myFile = new File("/res/raw/testFile"); 

我得到一個java.io.FileNotFoundException:/ RES /生/ TESTFILE (沒有這樣的文件或目錄)

感謝

回答

1

我正在使用TestCase類。

擴展TestCase時無法訪問系統資源。 TestCase是jUnit的一部分,不是android。

相反,您可以擴展InstrumentationTestCase。這將允許您訪問目標應用程序的上下文getInstrumentation().getTargetContext()以及測試應用程序的上下文getInstrumentation().getContext()

然後您可以按如下方式訪問您的原始文件。

Context testContext = getInstrumentation().getContext(); 
InputStream input = testContext.getResources().openRawResource(R.raw.sample); 

檢查,如果你需要幫助與輸入流工作了this question

+0

感謝您對問題的回覆。我不再從事這個項目,但那很可能是問題所在。 – elliance 2011-08-10 13:37:23

0

據我所知,一個應用程序的資源不能與其他共享,除非你做它作爲一個內容提供商左右..

我的建議是在/sdcard//sample.xml這樣的常見位置寫這個文件。

對這兩個應用程序都具有讀寫權限。

0

由於Android Gradle Plugin版本1.1你沒有使用Instrumentation加載文件資源。

我寫了here怎麼用POJO unit test這個案例。