当前位置: 首页 > 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.xdnf.cn/news/956557.html

相关文章:

  • 深入探讨渗透测试的定义、关键步骤以及实施方法
  • 《射频识别(RFID)原理与应用》期末复习 RFID第三章 编码和调制(知识点总结+习题巩固)
  • EZDML:一款国产免费的数据库建模工具
  • [25-cv-61102]SMG律所代理Fanatics 体育用品商标维权案
  • UI学习(三)
  • 嵌入式学习Day34
  • VS Code中Augment AI免费额度用尽的完美解决方案
  • CppCon 2015 学习:The Birth of Study Group 14
  • Android15默认开启无障碍服务
  • ui框架-文件上传组件
  • 高密度ARM服务器的散热设计
  • JAVA开发工具箱
  • Easy Excel
  • Shell脚本 - 查看系统信息
  • 设计模式作业
  • Unity中的Time.fixedDeltaTime
  • 9. 线性表的顺序表示和实现(1)
  • TCP和UDP区别
  • 关于 WASM:1. WASM 基础原理
  • linux 下常用变更-8
  • VisualXML全新升级 | 新增数据库编辑功能
  • 怎么让Comfyui导出的图像不包含工作流信息,
  • 三网智能切换技术如何造富?拆解格行WiFi代理的管道收益模型
  • 直播APP平台中如何实现人脸美颜功能?美颜SDK技术详解
  • React第五十七节 Router中RouterProvider使用详解及注意事项
  • Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)
  • PLC入门【4】基本指令2(SET RST)
  • 分布式系统简述
  • Appium下载安装配置保姆教程(图文详解)
  • 基于 Three.js 的数字雨波纹效果技术解析