Uiautomator--断言的使用
方法 | 说明 |
assertEquals(boolean,boolean) | 如果期望(expected)和实际(actual)相等则通过,否则失败 |
assertEquals(String,boolean,boolean) | 如果期望(expected)和实际(actual)相等则通过,否则失败 |
assertEquals(byte,byte) | 如果期望(expected)和实际(actual)相等则通过,否则失败 |
assertEquals(String,byte,byte) | 如果期望(expected)和实际(actual)相等则通过,否则失败 |
assertEquals(char,char) | 如果期望(expected)和实际(actual)相等则通过,否则失败 |
assertEquals(String,char,char) | 如果期望(expected)和实际(actual)相等则通过,否则失败 |
assertEquals(int,int) | 如果期望(expected)和实际(actual)相等则通过,否则失败 |
assertEquals(String,int,int) | 如果期望(expected)和实际(actual)相等则通过,否则失败 |
assertEquals(long,long) | 如果期望(expected)和实际(actual)相等则通过,否则失败 |
assertEquals(String,long,long) | 如果期望(expected)和实际(actual)相等则通过,否则失败 |
assertEquals(Object,Object) | 如果期望(expected)和实际(actual)相等则通过,否则失败 |
assertEquals(String,Object,Object) | 如果期望(expected)和实际(actual)相等则通过,否则失败 |
assertEquals(short,short) | 如果期望(expected)和实际(actual)相等则通过,否则失败 |
assertEquals(String,short,short) | 如果期望(expected)和实际(actual)相等则通过,否则失败 |
assertEquals(String,String) | 如果期望(expected)和实际(actual)相等则通过,否则失败 |
assertEquals(String,String,String) | 如果期望(expected)和实际(actual)相等则通过,否则失败 |
//断言两个对象是否相等
static public void
asserEquals(String message,Object expected,Object actual){
//判断两个都为空,则相等
if (expected==null && actual==null){
return ;
}
//判断两个相等
if (expected!=null && expected.equals(actual)){
return
}
//如果以上都不符合,直接抛出异常
failNotEquals(message,expected,actual);
}
public void testDemo1() throws UiObjectNotFoundException{
//断言相等的例子
assertEquals(5, add(2,3));
//断言不相等的例子
assertEquals(6, add(2,3));
}
//新建一个加法方便使用断言函数
public int add(int a,int b){
return a+b;
}
方法 | 说明 |
assertEquals(double,double,double) | 如果期望(expected)和实际(actual)相差不超过精度值(delta)则通过,否则失败 |
assertEquals(String,double,double,double) | 如果期望(expected)和实际(actual)相差不超过精度值(delta)则通过,否则失败 |
assertEquals(float,float,float) | 如果期望(expected)和实际(actual)相差不超过精度值(delta)则通过,否则失败 |
assertEquals(String,float,float,float) | 如果期望(expected)和实际(actual)相差不超过精度值(delta)则通过,否则失败 |
public void testDemo1() throws UiObjectNotFoundException{
//断言不相等的例子
assertEquals(0.3333, Double.valueOf(1)/3,0);
//断言相等的例子
assertEquals(0.3333, Double.valueOf(1)/3,4);
//断言相等的例子
assertEquals(0.3333, Double.valueOf(1)/3,0.0001);
}
//新建一个加法方便使用断言函数
public int add(int a,int b){
return a+b;
}
3、相关API--same
方法 | 说明 |
assertFalse(boolean) | 如果条件(condition)为False则通过,否则失败 |
assertFalse(String,boolean) | 如果条件(condition)为False则通过,否则失败 |
assertTrue(boolran) | 如果条件(condition)为True则通过,否则失败 |
assertTrue(String,boolran) | 如果条件(condition)为True则通过,否则失败 |
assertNotNull(Object) | 如果条件(condition)为非空则通过,否则失败 |
assertNotNull(String,Object) | 如果条件(condition)为非空则通过,否则失败 |
assertNull(Object) | 如果条件(condition)为空则通过,否则失败 |
assertNull(String,Object) | 如果条件(condition)为空则通过,否则失败 |
assertNotSame(Object,object) | 如果期望(expected)和实际(actual)引用不同的内存对象对象则通过,否则失败 |
assertNoteSame(String,Object,Object) | 如果期望(expected)和实际(actual)引用不同的内存对象对象则通过,否则失败 |
assertSame(Object,Object) | 如果期望(expected)和实际(actual)引用相同的内存对象对象则通过,否则失败 |
assertSame(String,Object,Object) | 如果期望(expected)和实际(actual)引用相同的内存对象对象则通过,否则失败 |
/示例一:
public void testDemo1() throws UiObjectNotFoundException{
//自己声明一个布尔值为了测试断言函数的使用
boolean is=true;
//断言成功的例子
assertTrue(is);
//断言失败的例子
assertFalse(is);
}
//示例二:
public void testDemo1() throws UiObjectNotFoundException{
int a = 100;
int b = 100;
Integer c=new Integer(100);
//断言成功的例子,值的比较
assertSame(a, b);//a和b的值相等,内存指向也相等
//断言失败的例子
assertNotSame(a, b);
//断言失败的例子,内存地址比较
assertSame(a, c);//a和c的值相等,内存指向不相等
//断言成功的例子
assertSame((Object)a, c);//a和c的类型不一样,所以要把a强制转换成对象,才可以比较
}
4、相关API--fali
方法 | 说明 |
fail() | 用例立即失败 |
fail(String) | 用例立即失败,且抛出指定消息 |
failNotEquals(String,Object,Object) | 用例立即失败,且抛出指定消息与期望、实际值不相等的消息 |
failNotSame(String,String,String) | 用例立即失败,且抛出指定消息与期望、实际值不相等的消息 |
failSame(String) | 用例立即失败,且抛出指定消息 |
public void testDemo1() throws UiObjectNotFoundException{
UiDevice.getInstance().pressBack();
UiDevice.getInstance().pressMenu();
UiDevice.getInstance().pressHome();
//用例失败,且抛出异常
fail("Failed");
}
三、结合实例
//开始
protected void setUp() throws Exception{
super.setUp();
}
public void testDemo1() throws UiObjectNotFoundException{ //初始化场景
UiDevice.getInstance().pressBack();
UiDevice.getInstance().pressBack();
UiDevice.getInstance().pressBack();
UiDevice.getInstance().pressHome();
//打开文件管理
UiObject app=new UiObject(new UiSelector().description("应用"));
UiObject file=new UiObject(new UiSelector().text("文件管理器"));
app.clickAndWaitForNewWindow();
file.clickAndWaitForNewWindow();
//验证开启成功
String packageName=UiDevice.getInstance().getCurrentPackageName();
assertEquals("File open succes!","com.cyanogenmod.filemanager", packageName);
//检查目录名为test的目录
UiObject test=new UiObject(new UiSelector().text("test"));
UiScrollable listView=new UiScrollable(new UiSelector().className("android.widget.ListView"));
boolean FindResult=listView.scrollIntoView(test);
//如果有该目录则停止执行用例
if (FindResult==true){
fail("test目录已经存在");
}
//如果没有该目录则新建test目录
UiObject dos=new UiObject(new UiSelector().description("操作"));
dos.clickAndWaitForNewWindow();
UiObject newFile=new UiObject(new UiSelector().text("新建文件夹"));
newFile.clickAndWaitForNewWindow();
UiObject input=new UiObject(new UiSelector().className("android.widget.EditText"));
input.setText("test");
UiObject ok=new UiObject(new UiSelector().text("确定"));
ok.click();
//验证新建成功
boolean FindResult2=listView.scrollIntoView(test);
assertTrue("test目录创建成功",FindResult2);
}
//完成
protected void tearDown() throws Exception{
super.tearDown();
UiDevice.getInstance().pressBack();
UiDevice.getInstance().pressBack();
UiDevice.getInstance().pressBack();
UiDevice.getInstance().pressHome();
}
Uiautomator--断言的使用的更多相关文章
- 10.Android UiAutomator Junit 断言函数的使用
一.断言函数介绍 1.断言函数: 确定被测试的方法是否按照预期的效果正常工作 比如说: if (假设成立){ 通过测试 }else{ 报错并终止当前用例测试 } 2.断言函数用例结构: 一个完整的测试 ...
- 转载:Robotium之Android控件定位实践和建议(Appium/UIAutomator姊妹篇)
来源于:http://blog.csdn.net/zhubaitian/article/details/39803857 1. 背景 为保持这个系列的一致性,我们继续用SDK自带的NotePad实例应 ...
- uiautomator做自动化的过程
UIautiomator官网地址:http://android.toolib.net/sdk/index.html 1.环境搭建 使用uiautomator需要导入jar包,uiautomator.j ...
- Robotium之Android控件定位实践和建议(Appium/UIAutomator姊妹篇)
本人之前以前撰文描写叙述Appium和UIAutomator框架是怎样定位Android界面上的控件的. UIAutomator定位Android控件的方法实践和建议 Appium基于安卓的各种Fin ...
- 两分钟搞懂UiAutomator、UiAutomator2、Bootstrap的关系
很多同学经过一段时间的学习之后都明白了Appium的基本原理,但是越学习到后面发现出现的很多陌生名词无法弄清楚其具体作用,今天这篇文章的目的就是为了让大家来弄懂三个高频名词:UiAutomator.U ...
- 11.UiAutomator 相关JAVA知识
一.封装方法与模块化用例 1.方法: 在JAVA中,方法就好比日常生活中的一个动作,由动作组合成一系列完整的操作. 方法结构: 方法修饰符 方法返回值类型 方法名 { 方法体 } 比如: public ...
- uiautomator +python 安卓UI自动化尝试
使用方法基本说明:https://www.cnblogs.com/mliangchen/p/5114149.html,https://blog.csdn.net/Eugene_3972/article ...
- Android自动化测试框架UIAutomator原理浅析
UIAutomator是一个Android自动化测试框架,是谷歌在Android4.1版本发布时推出的一款用Java编写的UI测试框架,它只能用于UI即黑盒方面的测试.所以UIAutomator只能运 ...
- UiAutomator、UiAutomator2、Bootstrap的关系
很多同学经过一段时间的学习之后都明白了Appium的基本原理,但是越学习到后面发现出现的很多陌生名词无法弄清楚其具体作用,今天这篇文章的目的就是为了让大家来弄懂三个高频名词:UiAutomator.U ...
- Android UIAutomator自动化测试
描述:UiAutomator接口丰富易用,可以支持所有Android事件操作,事件操作不依赖于控件坐标,可以通过断言和截图验证正确性,非常适合做UI测试. UIAutomator不需要测试人员了解代码 ...
随机推荐
- Dubbo_异常_Service启动时默认将方法注册到内网IP
一.背景 一般Dubbo服务都是通过内网调用,Dubbo服务启动时默认会将服务注册到内网IP,消费端就无法从外网访问. 二.解决过程 1.Linux的hosts中设置外网IP a) 通过hostnam ...
- 【BZOJ 4580】【Usaco2016 Open】248
http://www.lydsy.com/JudgeOnline/problem.php?id=4580 区间dp,f(i,j)表示区间[i,j]全部合成一个数,这个数是多少. 可以归纳证明[i,j] ...
- Scala元组
object TupleTest { def basic(firstName: String, lastName: String, age: Int): (String, String, Int) = ...
- python读取caffemodel文件
caffemodel是二进制的protobuf文件,利用protobuf的python接口可以读取它,解析出需要的内容 不少算法都是用预训练模型在自己数据上微调,即加载"caffemodel ...
- 收集移动端HTML5/H5使用的插件
日期: http://t.cn/R2UOFoW 地区: http://www.jq22.com/jquery-info8371 头像: http://fex.baidu.com/webuploader ...
- UVA1368
用一个二维数组装m个字符串,然后用一个数组装每个字符串的hamming距离.找到最小的hanming距离即可 #include<stdio.h> #include<string.h& ...
- 彻底理解session
最详细的对session的解析: https://www.tooto.cc/archives/178
- ITShare
框架底层通过IBatis和XML实现ORM映射: 业务处理类似UI,通过Controller和JavaScript交互: 视图通过Castle与NVelocity实现,jquery.tmpl渲染: . ...
- PBR
https://iwantthatcake.wordpress.com/2012/02/22/real-time-radiosity-geometrics-enlighten/ http://www. ...
- TTTAttributedLabel xib sb lineSpacing not working
https://github.com/TTTAttributedLabel/TTTAttributedLabel/issues/733 set the same text in storyboard ...