首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android 单元测试和 UI 测试初步实践

Android 测试代码位置 在 Android Studio 中新建新的项目时,它已自动两种测试类型创建了对应的代码目录: 单元测试用例:位于 module-name/src/test/java 目录下...环境下才能运行 接下来,笔者将尝试自己的项目(基于 MVP 架构开发)补充相应的单元测试用例和 UI 测试用例,来初步实践下如何在 Android 平台编写和运行相关的测试用例。...:3.0.2" 编写测试代码 笔者主要测试的代码 NewsDetailActivity,主要功能是加载 intent 传递过来的新闻标题和新闻原文地址,然后在 Toolbar 中显示新闻标题,在 Webview...#launchActivity(intent) 方法启动待测试 Activity,并做一个 IdlingResource 的绑定;@After 注解的方法会在执行测试用例之后执行,这里做一个 IdlingResource...的解绑操作; 什么是 IdlingResource 呢?

2K10
您找到你想要的搜索结果了吗?
是的
没有找到

Android开发者的UI自动化测试上手指南

为什么选择Espresso测试框架? 很简单,Espresso是Google针对Android平台开源的一款最新的Android自动化测试框架。...编写测试用例代码 比如当我们TestActivity创建TestActivityTest测试用例类文件成功以后: 首先需要在测试用例类的类体前添加@RunWith的注解,并设置测试运行平台AndroidJUnit4...如上图所示,代码TestActivity创建了测试用例类TestActivityTest,其中testDeciceName其中一个测试用例方法。...Espresso提供了原生的异步测试支持,通过实现IdlingResource接口,复写getName()、isIdleNow()、registerIdleTranstionCallback()方法。...然后在测试用例的类中注册和反注册接口: Espresso.registerIdlingResources(idlingResource); ?

82520

Espresso 遇见 Android 单元测试

工程中使用Espresso实现自动化测试只需要三步: 1、添加依赖: androidTestCompile 'com.android.support.test.espresso:espresso-core...1、将UI控件放入Activity(xml中配置); 2、添加一个输入框(也可用Spinner)和按钮用来提交命令,不同的命令控制UI控件调用不同的函数,Activity制作完成; 3、使用Espresso...Activity制作 由方案步骤1与2可知,需要制作一个Activity。...先看看带TimePicker和命令输入框的Activity实际效果: 时间选择器TimePicker的class文件的类结构: 分析类结构后,需要进行单元测试的函数methodD()、methodE...其他函数初始化或被测函数中调用的函数,都会被自动调用执行。 Activity中需要完成解析命令执行以上对应UI控件函数,根据输入框输入的字符来区分。 由此,Activity便制作完成。

2.5K10

协程中的取消和异常 | 驻留任务详解

✅ 好处: 便于测试。您可以在进行单元测试或仪器测试时轻松替换掉它们。 2. 应当在 ViewModel 或 Presenter 层创建协程 如果是仅与 UI 相关的操作,则可以在 UI 层执行。...如果您认为这条最佳实践在您的工程中不可行,则很有可能是您没有遵循第一条最佳实践 (测试没有注入调度器的 ViewModel 会变得更加困难;这种情况下,暴露出挂起函数会使测试变得可行)。...在 Android 中,测试 UI 层需要执行插桩测试,而执行插桩测试需要运行一个模拟器。 3....() 替代方案 其实还有一些其他的方式可以让我们使用协程来实现这一行。...就如同我们对 applicationScope 所做的那样,您无法所有协程都提供一个通用的、内建于作用域中的 CoroutineContext。

1.4K20

Android神兵利器之Image Asset Studio的实现

曾几何时, Android开发没有那么方便, 制作一个图标也许都要请美工, 或者自己花时间去PS。...按照字面意思, Image Asset Studio就是用来制作图像素材的工具。不过其实它是用来制作Android中的各种图标的, 这里的Asset是它用于制作图标的原材料。...Action Bar and Tab Icons图标类型 再来试试Action Bar and Tab Icons图标类型, 我们可以选择素材类型Text, 也就是文本。...2.2版中很多新功能日趋完善, 比如 Instant Run, Layout Editor, Espresso Test Recorder (用于录制Android UI测试, 以便自动生成测试代码。...之前2.1或2.2 Beta版本的Espresso Test Recorder在真机上启动不起来, 只能在模拟器上启动)。 除此之外还有许多新功能的加入。

1.4K30

协程简单上手(线程切换)

上一篇文章中我们分析了挂起函数的本质(状态机),以及查看编译器我们生成的类里面是如何借用状态机实现的“挂起”,那么在实际coding中我们该如何使用协程呢?...Android我们自动提供了一个viewmodelScope,他可以在配置改变引起的销毁重建时自动取消开启协程不用担心泄漏问题。...CoroutineDispatcher:将工作分派到适当的线程。CoroutineName:协程的名称,可用于调试。CoroutineExceptionHandler:处理未捕获的异常。...协程如何测试开启协程runTest 是用于测试的协程构建器。相比于正式编码的时候使用的是launch和async。使用此构建器可封装包含协程的任何测试。...TestDispatchers是用于测试的 CoroutineDispatcher 实现。

45950

协程简单上手(线程切换)

theme: condensed-night-purple 上一篇文章中我们分析了挂起函数的本质(状态机),以及查看编译器我们生成的类里面是如何借用状态机实现的“挂起”,那么在实际coding中我们该如何使用协程呢...Android我们自动提供了一个viewmodelScope,他可以在配置改变引起的销毁重建时自动取消开启协程不用担心泄漏问题。...CoroutineDispatcher:将工作分派到适当的线程。 CoroutineName:协程的名称,可用于调试。 CoroutineExceptionHandler:处理未捕获的异常。...协程如何测试 开启协程 runTest 是用于测试的协程构建器。相比于正式编码的时候使用的是launch和async。使用此构建器可封装包含协程的任何测试。...TestDispatchers是用于测试的 [CoroutineDispatcher] 实现。

63820

基于Kotlin DSL的Espresso和UIAutomator的融合客户端自动化

前言 最近小编在探索端对端测试相关的topic,在Android端的自动化测试上,可供我们选择的库并不是很多,而其中小编使用最多的两个库分别是Espresso和UIAutomator。...尽管两者都可以达成我们的最终目的,但实现的过程还是有所区别的: Espresso是用于Android测试的白盒解决方案,以沙盒化的形式测试当前应用程序。...UIAutomator是一个常用的Android端黑盒测试解决方案,它在设备维度上运行,故而提供了应用程序及程序之外的操作及测试方法。...为了进行充分的端对端测试,我们便需要利用好两者的优势,以实现在合适的地方对程序进行合适的自动化测试。...假设这一条case的编写、改进、维护成本在一个季度内评估30min,那么1000条case维护起来的工作量可想而知。

2.2K50

腾讯TMQ在线沙龙回顾|UI自动化中阶思考与实践

嘉宾简介 陈帅,腾讯专项技术测试工程师,目前主要负责腾讯WIFI管家业务及专项测试,多年测试经验,在UI自动化开发方面,在appium、uiautomator、espresso等工具上都有实战经验。...答:Espresso 和 uiautomator是可以组合使用。 2、资源混淆是不是需要开发提供资源对应表? 答:是的。...答:Espresso,appium,macaca,robotium都支持混合模式,具体用哪个,建议根据自己的结合项目的调研报告来选择。...答:对应的控件,开发如果没有写id的话就没有id,Dump下来UI之后,建议点击界面上的黄色小三角,尽量不要使用那些被置警告的UI控件,在自动化过程中,会找不到这些控件。...答:不建议使用appium做性能相关的测试,框架本身的问题无法避免,只能换一种框架。性能测试的话,我建议用uiautomator和espresso来驱动会更好。

1.5K90
领券