Nut*_*mic 18 java android unit-testing android-resources
我有一个Gradle项目,具有以下结构:
project/
src/
androidTest/
java/
main/
java/
res/
AndroidManifest.xml
build.gradle
Run Code Online (Sandbox Code Playgroud)
现在我想添加一个使用资源("原始"或"资产")的单元测试.
我把我的资源放入project/androidTest/assets/test_file并使用getContext().getResources().getAssets().open("test_file");(在一个AndroidTestCase)中访问它.
但是,这给了我一个FileNotFoundException.我怎样才能解决这个问题?
Yai*_*lka 35
看起来您正在尝试创建一个检测单元测试,因为您想在androidTest文件夹中创建它.
您可以在测试中使用这两行中的一行来获取上下文:
Context ctx = InstrumentationRegistry.getTargetContext();
这个将为您提供应用程序的上下文.例如,您可以使用它来获取src/main/assets中的资产.
Context ctx = InstrumentationRegistry.getContext();
这个将给你测试应用程序的上下文.您可以使用它来获取src/androidTest/assets中的资产
如果您想了解有关单元测试中资产的更多信息,可以阅读这篇文章.在这个github文件中你有一个例子.
我认为您使用了错误的上下文(应用程序上下文而不是检测上下文)使用:
getInstrumentation().getContext();
Run Code Online (Sandbox Code Playgroud)
或者在这里看到我确切地做你想做的事情:https : //github.com/ligi/gobandroid/blob/master/android/src/androidTest/java/org/ligi/gobandroidhd/base/AssetAwareInstrumentationTestCase.java
| 归档时间: |
|
| 查看次数: |
5393 次 |
| 最近记录: |