有人知道如何在Android junit测试用例(扩展了AndroidTestCase)中获得Test project的上下文吗.

注:本测试不是仪器测试.

注2:我需要测试项目的上下文,而不是被测试的实际应用程序的上下文.

我需要这个来从测试项目的assets资源 中加载一些文件.

推荐答案

Android测试支持库(目前有androidx.test:runner:1.1.1个)有了新的方法.Kotlin更新的示例:

class ExampleInstrumentedTest {

    lateinit var instrumentationContext: Context

    @Before
    fun setup() {
        instrumentationContext = InstrumentationRegistry.getInstrumentation().context
    }

    @Test
    fun someTest() {
        TODO()
    }
}

如果您还想运行应用程序上下文:

InstrumentationRegistry.getInstrumentation().targetContext

完整运行示例:https://github.com/fada21/AndroidTestContextExample

Look here: What's the difference between getTargetContext() and getContext (on InstrumentationRegistry)?

Android相关问答推荐

渠道与共享流有什么区别

Jetpack Compose make父级图像填充高度

无法理解Kotlin Coroutines and Flows中的J.C.编程行为

如何在Android中使用TextView设置动态文本的样式

从安卓S原生库的资源中读取json文件

Jetpack编写错误(java.lang.NoSuchMethodError:无接口方法startRestartGroup)

将DiffUtils用于Android上的Recrecerview适配器

从惰性列中删除项目时Jetpack Compose崩溃

如何将.txtassets资源 转换为ArrayList<;字符串>;kotlin格式?

警告:应用必须面向 Android 13(API 级别 33)或更高版本.确实如此

Android 设备断开连接后发送的 BLE 蓝牙数据

Electric Eel 后 Gradle 项目同步失败 | 2022.1.1更新

Jetpack Compose Canvas drawText colored颜色 混合?

在事件中使用 Context/Toast 时不需要的重组 - Jetpack Compose

Jetpack Compose 部分或开放侧边框

如何在 BasicTextField 中全选焦点

Jetpack Compose Material3 禁用 ListItem

Android 应用程序在启动时自动启动

在jetpack compose中看不到圆角

(Android) 如何在一对多关系中将子 ID 与父级匹配