簡體   English   中英

如何在Android中訪問JUnit測試的文本文件?

[英]How do I access a text file for JUnit test in Android?

如何訪問我的目錄'src / test / resources'中的文本文件

在我的JUnit測試期間,我似乎無法獲取它

移動/的build.gradle:

sourceSets {
        test {
            java {
                srcDirs = [ 'src/test/java' ]
            }
            resources {
                srcDirs = [ 'src/test/resources' ]
            }
        }
    }

測試方法:

@Test
public void test_file() {
    URL resource = getClass().getResource("file_four_lines.txt");
    File file = new File(resource.getFile()); // Get NullPointerException here
    ...

}

/前綴文件路徑。

基本上,你會做這樣的事情:

File helloBleprintJson = new File(
        getClass().getResource("/helloBlueprint.json").getPath());

上面的片段取自此處

我認為這個鏈接會有所幫助。 在你的情況下為什么不硬編碼字符串進行測試? 為什么不使用String.xml而不是“file_four_lines.txt”。 國際化要求每個資源文件的目錄結構具有不同的語言,屏幕大小,方向,風味,夜/日視覺版本。 因此,可以從R文件編譯和訪問資源。 您試圖通過使用.txt而不是.xml來繞過此約定並直接訪問資源,它只是感覺不對。 我不認為測試就像你沒有遵循慣例那樣有問題。

請原諒我發布兩次,我的答案來自官方文檔 “以原始形式保存的任意文件。要使用原始InputStream打開這些資源,請使用資源ID調用Resources.openRawResource(),即R.raw 。文件名。

但是,如果需要訪問原始文件名和文件層次結構,可以考慮在assets /目錄中保存一些資源(而不是res / raw /)。 資產/中的文件沒有給出資源ID,因此您只能使用AssetManager讀取它們。“Json和txt 是非標准的(不支持),因此您必須提供自己的實現/ parcer來讀取此類型文件。感謝您post。我對資源有所了解,但感謝你的推動,我現在知道的更多。回顧一下Android資源系統跟蹤與應用程序相關的所有非代碼資產.Android SDK工具將應用程序的資源編譯到應用程序二進制文件中構建時間。要使用資源,必須在源代碼樹中(在項目的res /目錄中)正確安裝它並構建應用程序。作為構建過程的一部分,SDK工具為每個資源生成符號,您可以使用它們在您的應用程序代碼中訪問資源 ,當然所引用的符號都在生成的R文件中

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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