从单元测试访问 res/raw 文件

问题描述 投票:0回答:1

在我的 Android 项目中,我在

res/raw/config.json
中有一个文件。在 Android 应用程序中,可以通过
resources.openRawResource()
访问此文件。

有没有办法从单元测试(未检测)访问此文件?该文件存在于计算机上的项目中,因此应该是可能的...

有一个明显的解决方法,复制文件的内容并将其内联到测试中。

我在要点上遇到了以下代码片段,但我无法弄清楚,文件名应该是什么...以下不起作用...

javaClass.classLoader?.getResourceAsStream("config.json") 
javaClass.classLoader?.getResourceAsStream("raw/config.json")
javaClass.classLoader?.getResourceAsStream("res/raw/config.json")  
android kotlin unit-testing android-unit-testing
1个回答
0
投票

在单元测试中,您无法像在常规 Android 代码中那样使用

res/raw/
路径直接访问资源,因为单元测试在 Android 运行时环境之外运行。但是,您可以使用类加载器访问
src/test/resources
目录中的文件。方法如下:

  • 将 config.json 文件从项目中的

    res/raw/
    移至
    src/test/resources/

  • 然后您可以使用单元测试中的类加载器访问此文件,使用

    javaClass.classLoader?.getResourceAsStream("config.json")

© www.soinside.com 2019 - 2024. All rights reserved.