Android测试(1)-普通类的测试

Android中接口的回调,Activity或Fragment与普通类之间的互相调用 Android中接口的回调,Activity或Fragment与普通类之间的互相调用 废话不多说,你查回调说明你遇到了相同的问题,这里是我根据我的理解做的最简单的回调Demo,Activity与普通类之间的回调,下边有代码,拷过去直接运行 1.创建一个接口 /** 对外提供状态信息的接口 */ public interface InterFace {     public void 阅读详情

       对于Android开发来说,调试和测试都非常重要,现在十分流行的是TDD开发,测试驱动开发,再分析完需求之后,做出功能表和业务逻辑的概要设计,就可以通过需求和设计开发测试用例了,再围绕着符合实际需求的测试用例开发项目。当然测试用例和项目开发的顺序并不是非要那么绝对,再完成了测试用例后开始开发项目的过程中也可以反过来继续完善测试用例,要做到十分灵活的运用测试,相辅相成,以测试结果为驱动,小步伐的一步一步开发项目,会让你提升很大的效率,也会是项目开发变得愉快和轻松。

        例如我的入口Activity是一个登录页面,那么相应对应的测试用例就应该先写,测试目的就是输入任意的账号和密码不能报错,也不能有漏洞,而且要符合一定的规则,在这里可以根据自己的经验在测试用例的代码中放入一些很极端的值或者是零界值。然后我们围绕着测试结果开发项目代码,一般开发一边运行测试用例,如果报错就说明我们的账户和密码验证有BUG,那么继续围绕测试结果不断的完善代码。

       对于业内公认的测试框架是XUNIT, javaSE和javaEE 使用的是JUNIT,C/C++使用的CUNIT,那么Android的测试框架也是基于JUNIT的。为什么Android不直接使用JUNIT呢,那是因为Android有很多特殊的组件,他们拥有不受代码控制的生命周期,所以只能基于JUNIT进行二次开发,可以模拟或者截断原生组件运行的生命周期,另外Android测试框架式基于junit3的,所以测试方法以test开头,而并且junit4的注解风格。

       Android的测试类都是基于junit.framework.Assert这个类的,存放于android.test包下。除了broadcastreceiver以外,android的常用组件分别定制了适合它们的测试类和接口。

       测试项目和普通android开发项目的结构式一模一样的。在创建了开发项目以后,可以创建测试项目,然后包含开发项目。

       对于普通类的测试可以直接使用TestCase或者AndroidTestCase,例如你在Android开发项目里写的一些工具类,这些工具类对Android项目没有任何依赖性,所以测试时不需要涉及到Android各种生命周期的。


       我们先创建一个Hello工程,同时在创建Hello的对话框里顺便创建Hello的测试工程,这样测试工程就包括了Hello的工程:















然后在Hello工程中创建一个工具类Checker,用于验证输入框的账号是否符合要求:








public class Checker {
	public static boolean checkID(String id) {
		// ..... operations.....
		return true;
	}
}



然后在HelloTest工程中创建Checker的测试用例Test_Checker并在testCheckID方法中测试checkID方法:








public class Test_Checker extends TestCase {
	
	private Checker checker;

	protected void setUp() throws Exception {
		super.setUp();
		checker = new Checker();
	}

	protected void tearDown() throws Exception {
		super.tearDown();
	}

	public void testCheckID() {
		//这里填入各种极端的字符串来验证checkID方法是否有BUG
		assertEquals(true, checker.checkID("zhangsan"));
		assertEquals(true, checker.checkID("lisi"));
		assertEquals(true, checker.checkID("panda_user"));
		assertEquals(false, checker.checkID("1user"));
		assertEquals(false, checker.checkID("~/2fds34"));
	}

}





运行测试用例得到测试结果:





代码checkID方法有BUG,那么修改该方法即可,那么每次开发完成的时候,就直接运行测试用例,运行测试工程会自动先安装被测试的项目。

Android简单测试例子 NULL 博文链接:https://haitian235.iteye.com/blog/799124 立即下载

相关推荐

Android单元测试初探——Instrumentation

学习Android有一段时间了,虽然前段时间对软件测试有了一些了解,不过接触android的单元测试却是头一次。这几天在物流大赛上也用了不少时间,所以对于android的单元测试没有太深入的研究,所以先写个基本入门吧!首先,我们来了解一下android的测试类的层次结构:可以看出android中的测试方法主要有AndroidTextCase和InstrumentationTextCase。在这篇文章中,我将介绍Instrumentation这种测试方法,那么什么是Instrumentation?Instrumentation和Activity有点类似,只不过Activity是需要一个界面的,而

如何在Android中编写测试类

如何在android中编写测试类 引入依赖 androidTestImplementation 'com.android.support.test:runner:1.0.2' 在androidTest目录下编写测试类,在此目录下的测试类会在模拟器或者真机上运行,而test目录下的测试类会在java虚拟机上运行 在android中经常需要使用Context,在测试类中我们使用 InstrumentationRegistry.getTargetContext()方法来获取Context。@Be

wsb_2526的博客 2672

RealSense D455的标定并运行VINS-FUSION

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

qq_40186909的博客 2万+

Andriod测试类和测试内容

1 Activity测试:基于Android instrumentation框架的测试。Android提供的基础类是InstrumentationTestCase。主要的两个子类是ActivityInstrumentationTestCase2和ActivityUnitTestCase.

成长屋 461

MATLAB App Designer 实现多窗口交互与数据传递实战

本文详细介绍了如何使用MATLAB App Designer实现多窗口交互与数据传递的实战技巧。从基础的多窗口应用设计到高级的动态窗口创建,涵盖了窗口调用控制、数据传递方法、状态管理及用户体验优化等核心内容,帮助开发者高效构建复杂的MATLAB GUI应用。

milk5的博客 664

合成孔径雷达(SAR)的常见工作模式

随着星载SAR技术研究的深入发展,单一的条带模式已经无法满足当今时代的需求,因此许多新的工作模式相继被提出。这些新模式在分辨率和测绘宽度等方面都有所提高,接下来将简要介绍几种常用的工作模式。

m0_51390495的博客 2314

Android 测试全指南:单元测试与UI测试框架详解

单元测试(Unit Test):针对最小可测试单元(通常是方法或类)的测试,运行在JVM上,速度快10UI测试:验证用户界面交互和行为的测试,包括封闭UI测试(Hermetic UI Test)和端到端测试(E2E Test)10Monkey测试:随机压力测试,模拟用户无规律操作以发现ANR等问题10建立全面的Android测试体系需要结合多种测试框架和策略。从单元测试保障基础逻辑,到UI测试验证用户交互,再到Monkey测试发现潜在问题,每一层测试都为应用质量提供了保障。

专注于移动开发的干货分享。提供高效解决方案、避坑指南与前沿技术解析。为开发者创造价值。 3836

AI学习指南RAG篇(19)-API调用与集成

通过上述API调用示例,您可以方便地将RAGFlow与其他系统集成,实现数据集管理、文档处理、会话管理等功能。希望本文的介绍能帮助您更好地理解和使用RAGFlow的API。

俞兆鹏的博客 2544

关于Android的自动化测试,你需要了解的5个测试框架

Appium Appium是一个开源的移动测试工具,支持iOS和Android,它可以用来测试任何类型的移动应用(原生、网络和混合)。作为一个跨平台的工具,你可以在不同的平台上运行相同的测试。为了实现跨平台的功能,Appium使用了供应商提供的Android UI框架来实施测试:在iOS中使用XCTest,在Android中使用UIAutomator或Instrumentation。它将这些...

u014731052的专栏 1231

深度解读 ABAP CDS View 中的 @Analytics.dataCategory: #FACT 注解

注解在 ABAP CDS View 中具有重要意义。它不仅定义了当前视图在数据模型中的角色,还为后续的分析和报告奠定了基础。在实际开发中,通过合理使用这一注解,可以显著提升数据模型的可用性和系统性能。无论是简单的 KPI 展示还是复杂的多维分析,这一注解都能发挥关键作用。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 787

YOLOv11改进策略【模型轻量化】| 替换骨干网络为 MobileViTv1高效的信息编码与融合模块,获取局部和全局信息

本文记录的是基于MobileNet V4的YOLOv11目标检测轻量化改进方法研究。其中MobileViT块旨在以较少的参数对输入张量中的进行建模,结合卷积与 Transformer 的优势,并实现有效的信息编码与融合本文配置了原论文中和三种模型,以满足不同的需求。

Limiiiing的博客 1074

【Android】主流单元测试组件,一网打尽!

Android的测试的组件比较多,像JUnit,Espresso,UiAutomator,MockitoAndroid的测试范围也包括很多种,比如Java代码测试,Android逻辑测试,AndroidUI测试每个框架的侧重点各有不同,这里我们专门来介绍前三个Google官方推荐的测试框架有些测试组件是只在AndroidTest中可用的,在JavaTest目录下如果访问不了,不用大惊小怪。

天天向上 Up Up Up (*^▽^*) 1724

2023华为od机试C卷【最富裕的小家庭】Python 实现

在一颗树中,每个节点代表一个家庭成员,节点的数字表示其个人的财富值,一个节点及其直接相连的子节点被定义为个小家庭。现给你一颗树,请计算出最富裕的小家庭的财富和。

MISAYAONE的博客 2042

Android单元测试学习总结

Android单元测试主要分为以下两种 本地单元测试(Junit Test), 本地单元测试是纯java代码的测试,只运行在本地电脑的JVM环境上,不依赖于Android框架的任何api, 因此执行速度快,效率较高,但是无法测试Android相关的代码。 Android单元测试(Android Test),是针对Android相关代码的测试,需要运行在真机设备或模拟器上,运行速度较慢,但是可以...

川峰的博客 6736

手把手教你学simulink(85.6)--非线性控制:滑模控制场景实例:基于Simulink建模仿真的滑模控制(Sliding Mode Control, SMC)在无人机自主飞行控制系统中的应用

首先,在MATLAB命令窗口中定义系统的参数和状态空间模型。matlab深色版本% 系统参数m = 1.5;% 无人机质量 (kg)g = 9.81;% 重力加速度 (m/s^2)% 惯性矩阵 (kg*m^2)% 初始条件pos0 = [0;0;0];% 初始位置 (m)vel0 = [0;0;0];% 初始速度 (m/s)0;0];% 初始姿态角 (rad)0;0];% 初始角速度 (rad/s)

MHD0815的博客 649

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Android单元测试学习总结,android系统工程师面试题

外链图片转存中…(img-CiUOAWcy-1711914465251)][外链图片转存中…(img-BsMq9KKq-1711914465252)][外链图片转存中…(img-B6OjDxCn-1711914465252)][外链图片转存中…(img-Tq3NNpZ9-1711914465252)][外链图片转存中…(img-MXEJmfRa-1711914465253)][外链图片转存中…(img-FxnTRQGz-1711914465253)]

2401_83977626的博客 943

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Android测试初体验

Android测试初体验前言介绍编码gradle配置编写普通类编写测试类注意点Point onePoint twoPoint Three资料 前言 对于任何一个开发人员来说,测试必然是不可缺少的一部分。以前开发都是直接run代码到模拟器或者实体机上面进行实体测试,虽然说这样的测试,可以更加直观的看出问题。但是进行单元测试的话,需要较大的代码量来写测试用例,而且实体测试耗时更长,费时费力。所以想要学习如何更高效的进行代码测试。 介绍 稍微了解了一下(看了半天的样子吧,这篇文章只是为了暂时记录一下遇到的坑,而不

寂月的自我督促 908

如何一个普通类成为一个测试类

1.在实际开发中,开发android软件的过程需用不断的进行测试,使用Junit测试框架进行单元测试。在清单文件AndroidManifest.xml中加入以下红色代码即可<manifestxmlns:android=http://schemas.android.com/apk/res/androidpackage="cn.cbd.sms"andr...

weixin_34362991的博客 423

java抽象类重载_Android-Java-普通类与抽象类(覆盖)&方法重载

覆盖都是子类与父类之间 & 接口与实现类之间 才会产生:覆盖 有很多名称,覆盖,复写,重写 都是一个意思;注意:重载都是方法之间 方法同名 不同参数,就属于重载;普通类-覆盖:描述Animal动物对象:packageandroid.java.oop18;public classAnimal {public voidcry() {System.out.println("cry");}}描述...

weixin_30332669的博客 219

Android单元测试 ->知识整理及分享

Android单元测试 ->知识整理及分享Android单元测试单元测试?What?Why?一、Android现有测试框架及其优缺点JUnit4MockitoPowerMockitoRobolectricUIAutomator和Espresso;robotium;UI测试用例ActivityUnitTestCase、ActivityInstrumentationTestCase2二、确定Android 测试框架三、单元测试怎么写,非界面的逻辑部分的单元测试怎么写JUnit4PowerMockito普通

是非的Android学习之路 1447

android手机测试相关知识,Android 单元测试从入门到放弃

我想说的是,不要放弃,只要你想单测的,都可以做到。有疑惑看这里。本文就是一篇解答疑惑的文章。先看下基础知识单测框架很多(Junit,Mockito,PowerMock,Mockk,Robolectric),但是他们大多数是重复的,只要会一个,其他的就都会了(差不多)。单测的主要内容是什么,我自己总结了一下,就是 mock,verify,assert单测中经常会有一些问题,静态方法怎么测?私有变量怎...

weixin_36316642的博客 449

Android播放器设计模式,Android Ap 开发 设计模式第五篇:单件模式

Singleton Pattern名称由来java 是一门面向对象的语言,android 用的也是java 开发ap ,在java/C# 里面所有的物体(类)都可以看作是一个对象,而要使用这个对象无外乎为它在内存里面分配一个对象,一般情况下最直接的方法是new 一个对象,让它存在于内存中。单件/例模式是所有设计模式中可以说是最简单最易懂的一种编程方式 ,想保证某个特定类的对象实例绝对只有一个时,...

weixin_42445886的博客 166

springboot 项目中在普通类中调用dao层的mapper 出现空指针异常(1)

三个工作日收到了offer,头条面试体验还是很棒的,这次的头条面试好像每面技术都问了我算法,然后就是中间件、MySQL、Redis、Kafka、网络等等。第一个是算法关于算法,我觉得最好的是刷题,作死的刷的,多做多练习,加上自己的理解,还是比较容易拿下的。而且,我貌似是将《算法刷题LeetCode中文版》、《算法的乐趣》大概都过了一遍,尤其是这本。

ghfgjfg679的博客 1094

安卓自测试题——第九期

第八期自测试题答案: 1.C  2.C  3.D  4.C  5.B  6.B  7.C  8.D  9.A 10.答:jni的调用过程   1)安装和下载Cygwin,下载 Android NDK   2)在ndk项目中JNI接口的设计   3)使用C/C++实现本地方法   4)JNI生成动态链接库.so文件   5)将动态链接库复制到java工程

jike084的专栏 670
上一篇: Android 焦点滑动的 自定义 ListView
下一篇: Android 修改framework实现 全局唯一launcher
zhbinary
博客等级 码龄15年 28粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值