如何在Android中访问JUnit测试的文本文件?

时间:2016-05-14 01:42:07

标签: android junit

如何访问我的目录中的文本文件' src / test / resources'

在我的JUnit测试期间,我似乎无法获取它

移动/的build.gradle:

option

测试方法:

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

3 个答案:

答案 0 :(得分:6)

使用/

作为文件路径的前缀

基本上,你会做这样的事情:

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

上面的代码段取自here

答案 1 :(得分:0)

I think 此链接会有所帮助。在你的情况下,为什么没有hard code字符串进行测试?为什么不使用String.xml而不是“file_four_lines.txt”。国际化要求每个资源文件的目录结构具有不同的语言,屏幕大小,方向,风味,夜/日视觉版本。因此,可以从R文件编译和访问资源。您试图通过使用.txt而不是.xml来绕过此约定并直接访问资源,它只是感觉不对。我不认为测试对你的问题不如常规。

答案 2 :(得分:0)

请原谅我两次发帖,我确实有答案from the official documentation"任意文件以原始形式保存。要使用原始InputStream打开这些资源,请使用资源ID(即R.raw.filename)调用Resources.openRawResource()。

但是,如果需要访问原始文件名和文件层次结构,可以考虑在assets /目录中保存一些资源(而不是res / raw /)。资产/中的文件没有给出资源ID,因此您只能使用AssetManager读取它们。" Json和txt are non-standard(unsupported) 因此您必须提供自己的实现/ parcer来读取此类型文件。谢谢你的这篇文章。我对资源有所了解,但多亏了你的刺激,我现在​​知道了更多。回顾一下The Android resource system keeps track of all non-code assets associated with an application. The Android SDK tools compile your application's resources into the application binary at build time. To use a resource, you must install it correctly in the source tree (inside your project's res/ directory) and build your application. As part of the build process, the SDK tools generate symbols for each resource, which you can use in your application code to access the resources,当然所引用的符号都在生成的R文件中