[英]Test data sources in Android unit testing
我想測試從服務器返回的數據的解析。
我想我可能會創建幾個測試XML文件,然后將它們提供給使用我的自定義數據處理程序的sax解析器(就像我測試的應用程序一樣)。
但是我應該在哪里放置那些測試XML?
我嘗試了[project_root]/res/xml
,但后來我收到錯誤:
android.content.res.Resources$NotFoundException: Resource ID #0x7f040000 type #0x1c is not valid at android.content.res.Resources.loadXmlResourceParser(Resources.java:1870) at android.content.res.Resources.getXml(Resources.java:779)
這是否意味着xml無效,或者android無法找到XML文件? (我使用來自服務器的相同XML - 從firebug的網絡面板復制並粘貼到文件中)。
我可以以某種方式將XML作為文本文件讀取,因為getContext().getResources().getXml(R.xml.test_response1)
返回XmlResourceParser
而不是String
(我更喜歡)?
將xmls放在MyAppTest/assets
,例如MyAppTest/assets/my.xml
,然后使用它讀取它
InputStream myxml = getInstrumentation().getContext().getAssets().open("my.xml");
然后你可以用這個流調用解析器。
只需將文件放在當前包中(即放入資源包中)並使用類加載器...
private InputStream getTestImage(String pathToFile) throws IOException
{
final ClassLoader loader = getClass().getClassLoader();
assertNotNull(loader);
final InputStream resourceAsStream = loader.getResourceAsStream(pathToFile);
assertNotNull(resourceAsStream);
return resourceAsStream;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.