当前位置: 首页 > news >正文

Android Test4 Application(Context)实例的获取

Android Test4 Application(Context)实例的获取

在开发一个 SDK 时,最常涉及大的一个问题:初始时 SDK 内 Context/Application 的引用。它可以是 Activity Service 等各组件的实例,也可以是自定义的 Application 实例。由于 Activity/Service 等组件的生命周期都有定数,Application 的生命时长是贯穿整个 APK 的开始到结束。因此对于 SDK 内需要长时间存在的实例,可以关联到 ApplicationContext,在使用时需要的 Context 可以关联到普通组件的 Context 实例。


测试的 ContextApplication

被测试方法很多时候需要依赖 Context 去访问相关的资源或调用它的方法获取想要的结果,那么在测试代码中就需要来获取到这个 Context 实例。

下面以 SDK 内仪器测试(Instrumentation Test)的测试代码为例,说明如何通过测试框架获取 ContextApplication 实例。


@Before 方法中初始化整个测试方法需要依赖的 Context 实例。

class ToolsTest {private lateinit var _context: Context@Beforefun init() {_context = InstrumentationRegistry.getInstrumentation().targetContext// 或// _context = ApplicationProvider.getApplicationContext<Context>()}@Testfun test1() {// ...}
}

倘若需要 Application 实例,可以如下获取。

class ToolsTest {private lateinit var _application: Applicationprivate lateinit var _context: Context@Beforefun init() {_application = InstrumentationRegistry.getInstrumentation().targetContext.applicationContext as Application// 或// _application = ApplicationProvider.getApplicationContext<Application>()_context = application.applicationContext}@Testfun test1() {// ...}
}

上面这段初始化代码中,获得 Application 实例需要通过 Instrumentation 获取的 applicationContext 实例进行类型强转。

http://www.dtcms.com/a/240431.html

相关文章:

  • AI 导游:开启智能旅游新时代
  • 21-Oracle 23 ai-Automatic SQL Plan Management(SPM)
  • 数据结构篇--分离链表vs线性探测
  • 深入理解Spring Boot中的Filter机制:原理、注册与实战应用
  • 数据结构-文件
  • 怎么让Comfyui导出的图像不包含工作流信息,
  • Oracle11g安装包
  • nodejs express 打包部署
  • 洞见未来医疗:RTC技术如何重塑智慧医疗新生态
  • [拓扑优化] 1.概述
  • mcts蒙特卡洛模拟树思想
  • 抽象类和接口(全)
  • 土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等
  • 学习记录之nestjs---基本认识
  • QT开发技术【ffmpeg EVideo录屏软件 一】
  • vue+cesium示例:3D热力图(附源码下载)
  • pkg-config --cflags --libs opencv4详细解释
  • LangGraph基础知识(Graph-GraphState)
  • Ansible 错误处理:确保高效自动化
  • 大模型——基于Docker+DeepSeek+Dify :搭建企业级本地私有化知识库超详细教程
  • 河南建筑安全员C证考试常见题及答案解析
  • MyBatis中关于缓存的理解
  • stm32进入Infinite_Loop原因(因为有系统中断函数未自定义实现)
  • 门静脉高压——检查
  • FreeRTOS学习01_移植FreeRTOS到STM32(图文详解)
  • 从0到1构建我的AI星逻系统: LLM智能控制 + Streamlit前端实战
  • Netty
  • 简繁体智能翻译软件
  • ThreadLocal 源码
  • 7种分类数据编码技术详解:从原理到实战