繁体   English   中英

Android Studio Unit Test中的Assets文件夹

[英]Assets folder in Android Studio Unit Test

我有一个Gradle项目,具有以下结构:

project/
    src/
        androidTest/
            java/
        main/
            java/
            res/
            AndroidManifest.xml
    build.gradle

现在我想添加一个使用资源(“原始”或“资产”)的单元测试。

我将我的资源放入project/androidTest/assets/test_file并使用getContext().getResources().getAssets().open("test_file");访问它getContext().getResources().getAssets().open("test_file"); (在AndroidTestCase )。

但是,这给了我一个FileNotFoundException 我怎样才能解决这个问题?

看起来你正在尝试创建一个检测单元测试,因为你想在androidTest文件夹中创建它。

您可以在测试中使用这两行中的一行来获取上下文:

  • Context ctx = InstrumentationRegistry.getTargetContext(); 这个将为您提供应用程序的上下文。 例如,您可以使用它来获取src / main / assets中的资产。

  • Context ctx = InstrumentationRegistry.getContext(); 这个将给你测试应用程序的上下文。 您可以使用它来获取src / androidTest / assets中的资产

如果您想了解有关单元测试中资产的更多信息,可以阅读这篇文章。 这个github文件中你有一个例子。

我认为您使用错误的上下文(应用程序上下文而不是检测上下文)使用:

getInstrumentation().getContext();

或者看看我在哪里做你想做的事情: https//github.com/ligi/gobandroid/blob/master/android/src/androidTest/java/org/ligi/gobandroidhd/base/AssetAwareInstrumentationTestCase.java

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM