android - Robolectric:如何从 Assets 中修复 FileNotFoundException?

标签 android robolectric android-testing

在我的 robolectric 测试中,我正在尝试读取一个文件。由于此文件仅包含测试数据,我已将其放入测试 Assets 中。

目录结构如下所示。 src/main/assets/prod_data_file src/test/assets/test_data_file

但是,当我尝试通过 getShadowApplication().getAssets().open(MY_FILE_PATH) 或 context.getAssets().open(MY_FILE_PATH) 读取文件时,它会给我 FileNotFoundException。

有人知道如何解决这个问题吗?

我试试这个解决方案 Using assets in robolectric tests

这行不通 https://stackoverflow.com/a/21465230/1654690

最佳答案

这个解决方案适合我:

  1. 将所有文本文件移动到src/test/resources 文件夹

  2. 使用以下代码获取它们

    getClass().getClassLoader().getResourceAsStream("path/inside/resource_folder");

comment来自 Robolectric github 的帮助我。

关于android - Robolectric:如何从 Assets 中修复 FileNotFoundException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27442904/

相关文章:

android - 在Android应用程序中使用.so库时出错

android - 是否可以使用 android 应用内购买包月

android - 使用 Robolectric 和 Mockito 模拟 PackageManager

java - Mockito 错误 - 与此模拟 Android 的交互为零

Android:在仪器测试中获取对启动服务的引用

java - AndEngine - 场景变量在更改场景后不会重置

java - 为什么我的模型上的静态方法在 Google Cloud Endpoints 客户端库中不可用?

java - 从 Gradle 启动时 Robolectric 自定义 TestRunner 不工作

android - 使用 Simple-Xml 和 Robolectric 进行测试时出现 XmlPullParserException

android-studio - 如何在生成签名的 apk 之前运行测试?