android activity 测试,android – 最快的方法来创建一个模拟Activity来进行测试
我目前正在对图书馆进行单元测试.在某些类中,我需要在一些静态方法中将活动作为参数传递.图书馆本身不包含任何活动.我需要以某种方式获取模拟活动的实例,以便在每个单独的方法测试中使用.
我已经阅读了Activity Testing Tutorial和Testing Fundamentals部分.如果你要测试已经存在于待测试项目中的活动,那么大多数说法都是有意义的.但我只需要一个模拟的东西来做一些事情,比如在Ui线程中显示对话框和运行短任务.
实现这一目标的最快,最简单的方法是什么?我应该在我的测试项目中创建模拟活动,还为虚拟UI提供xml布局资源?
UPDATE
由于我没有找到任何自动创建模拟活动的方法,所以我决定自己提供.我在测试项目中创建了一个虚拟活动,什么都不做,并通过xml提供了一个虚拟布局.然后我编写了我的测试扩展ActivityInstrumentationTestCase2:
public class LibraryTest extends ActivityInstrumentationTestCase2 {
public LibraryTest(String name) {
super(MockActivity.class);
}
protected void setUp() throws Exception {
super.setUp();
}
public void testAMethodFromLibrary() {
fail("Not yet implemented");
}
}
MockActivity是我在此测试项目中创建的上述模拟活动.但是,似乎Android测试框架在启动活动时遇到问题,并且它出现了这个异常:
java.lang.RuntimeException: Exception during suite construction
at android.test.suitebuilder.TestSuiteBuilder$FailedToCreateTests.testSuiteConstructionFailed(TestSuiteBuilder.java:239)
at java.lang.reflect.Method.invokeNative(Native Method)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:169)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:154)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:520)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1447)
Caused by: java.lang.NullPointerException: Method name must not be null.
at java.lang.ClassCache.findMethodByName(ClassCache.java:297)
at java.lang.Class.getMethod(Class.java:985)
at android.test.suitebuilder.TestMethod.getAnnotation(TestMethod.java:60)
at android.test.suitebuilder.annotation.HasMethodAnnotation.apply(HasMethodAnnotation.java:39)
at android.test.suitebuilder.annotation.HasMethodAnnotation.apply(HasMethodAnnotation.java:30)
at com.android.internal.util.Predicates$OrPredicate.apply(Predicates.java:106)
at android.test.suitebuilder.annotation.HasAnnotation.apply(HasAnnotation.java:42)
at android.test.suitebuilder.annotation.HasAnnotation.apply(HasAnnotation.java:31)
at com.android.internal.util.Predicates$NotPredicate.apply(Predicates.java:122)
at android.test.suitebuilder.TestSuiteBuilder.satisfiesAllPredicates(TestSuiteBuilder.java:254)
at android.test.suitebuilder.TestSuiteBuilder.build(TestSuiteBuilder.java:190)
at android.test.InstrumentationTestRunner.onCreate(InstrumentationTestRunner.java:373)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4218)
at android.app.ActivityThread.access$3000(ActivityThread.java:125)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2071)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4627)
at java.lang.reflect.Method.invokeNative(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
at dalvik.system.NativeStart.main(Native Method)
现在我完全迷失在这里.怎么会这么复杂?我选择了正确的方法吗?我只想在测试方法中启动一个对话框.也许框架搞乱了,因为要测试的活动不在目标项目中?
这里的任何帮助将不胜感激.我已经没时间了,如果找不到合适的方法,我必须使用我的库创建第二个项目,在那里移动模拟活动并从测试项目中进行测试.这是很多代码,因为我必须在(现在不是通用的)模拟活动中包含一个方法来调用我想要测试的每个库方法.
android activity 测试,android – 最快的方法来创建一个模拟Activity来进行测试相关推荐
- android compile使用方法,自己创建一个android studio在线依赖compile
相信大家在使用AS(android studio)的时候添加依赖的时候有没见过如下方式: 很酷炫本人将教你如何做到. 1. 使用 jcenter()实现- 在创建的时候as自动帮我导入了 1. ...
- 使用Thread类和Runnable方法来创建一个线程的区别
第一:Thread类需要被继承,然后重写run()方法,但是Java中的类是单继承的,也就是说,若某个类继承Thread获取线程功能后,就不能再继承别的类了.但是Runnable接口解决了这个问题,某 ...
- 2023年副业赚钱最快的方法,最后一个时代红利,你一定要抓住!
你有没有发现,生活中大部分的烦恼,归根结底只有一个原因--没钱. 守着几千块的死工资,升职加薪难上加难,平时要为了省十几块钱不舍得打车; 跟老公三天两头吵架,原因不过就是家里没钱给孩子报学费高昂的兴趣 ...
- java新建测试程序_java – 如何创建一个CloseableHttpResponse对象来帮助测试?
我正在尝试构建一个 CloseableHttpResponse模拟对象,以在我的单元测试中返回,但是没有构造函数.我发现这个 DefaultHttpResponseFactory,但它只是一个Http ...
- android 自动重启测试,检测Android系统重启并生成测试用例的方法与流程
本发明涉及软件技术领域,特别是一种检测Android系统重启并生成测试用例的方法. 背景技术: 目前安卓智能设备的功能越来越多,例如安卓智能电视或安卓智能盒子等,而在不同功能间交叉操作有概率触发And ...
- 【Android 多媒体开发】 MediaPlayer 状态机 接口 方法 解析
作者 : 韩曙亮 转载请著名出处 : http://blog.csdn.net/shulianghan/article/details/38487967 一. MediaPlayer 状态机 介绍 ...
- android fota解决方案,Android智能终端FOTA方案的制作方法
技术特征: 1.android智能终端fota方案发明专利权利要求 1.一种智能终端连续增量升级实现方法. 2.其特征在于所有任何终端设备可以一次性增量升级到最新版本,也可以对部分版本一次性增量升级到 ...
- Android 学习 之 Android 4.0 平台
[size=large]转转转,感谢饿哦额Android的各位大侠,在这里谢过,我这里做个备份,嘿嘿!! http://www.eoeandroid.com/thread-103300-1-1.htm ...
- android studio创建一个类继承application_带你全方位了解Android中的Context
这道题想考察什么? 是否熟悉Context类结构 是否熟悉Application,Activity,Service和Context的依赖关系 Application,Activity,Service中 ...
- Android训练课程(Android Training) - 高效的显示图片
高效的显示图片(Displaying BitmapsEfficiently) 了解如何使用通用的技术来处理和读取位图对象,让您的用户界面(UI)组件是可响应的,并避免超过你的应用程序内存限制的方式.如 ...
最新文章
- textaligncenter仍然不居中_戊唑醇和己唑醇都是杀菌剂,有啥不同?真正懂的人不多...
- android sharesdk分享功能,Android ShareSDK快速实现分享功能
- C++中如何读取一个数的位数_C语言编写程序求水仙花数
- 论文浅尝 - CIKM2021 | DT-GCN: 一种双曲空间中的数据类型感知的知识图谱表示学习模型...
- 为什么iPhone 11在中国市场需求较美国强劲?真相扎心...
- group by 用法解析_GRE数学专项练习及解析概率
- 前端web:响应式网站开发的现状你了解吗?
- 孙鑫VC学习笔记:第十一讲 (三) 如何把元文件保存到文件当中
- Tomcat整体架构分析
- c语言大学生信息管理系统实验报告,c语言学生信息管理系统实训报告
- kuangbin专题-平整数组
- 【windows10】 CH340/CH341 USB转串口驱动安装
- mac mysql dmg_在mac下使用DMG安装Mysql
- 智慧(灯杆)路灯系统集成解决方案详解
- 软件测试面试题和简历模板(面试前准备篇)
- CTC Loss和Focal CTC Loss
- Scratch www 系统搭建
- 如何写出让同事吐血的代码?
- nmon analyser 使用中报错“宏”不可用的问题及处理
- Flan Scan:Cloudflare开源轻量级网络漏洞扫描软件