簡體   English   中英

在Android單元測試中測試數據源

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM