雾山的Robotium学习笔记---环境搭建及入门示例

2024-04-25 01:48

本文主要是介绍雾山的Robotium学习笔记---环境搭建及入门示例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Robotium是一款基于控件的Android自动化测试框架

环境搭建(window):

安装JDK以及集成Android Sdk的eclipse。

入门:

1,下载Robotium Solo 5.1,点我下载


2,开启eclipse,并导入被测工程(代码在最下面)

3,创建测试工程

new --- project --- Android Test Project


4,输入测试工程名,然后点击next


5,选择被测工程TButton,并点击finish


6,在测试工程中创建libs文件夹

7,将下载的robotium-solo-5.1.jar文件拷到libs文件夹,并右击build path---add to build path


8,将测试工程中的AndroidManifest.xml文件修改如下(一般情况下,创建完工程会自动添加的,若没有请自行添加)



9,创建junit test case,选择junit4,并输入类名,点击finish


10,打开新建的测试类,修改继承ActivityInstrumentationTestCase2,并创建该类的构造函数,引用方法setUp()和tearDown()


11,编写完测试用例后,连上设备,右击测试类,选择Android junit Test,此时就会开始执行测试用例了。

Ps:如果运行时,报如下错误


则是因为没有引入juint,查看配置里面是否勾选了junit。

Project --> Properties --> Java Build Path --> Order and Export 



测试用例源码:

package com.tangbc.tbutton.test;import org.junit.Test;
import android.test.ActivityInstrumentationTestCase2;
import com.robotium.solo.Solo;
import com.tangbc.tbutton.MainActivity;public class TButtonTest  extends ActivityInstrumentationTestCase2{private Solo solo;public TButtonTest() {super(MainActivity.class);}@Overrideprotected void setUp() throws Exception {solo = new Solo(getInstrumentation(),getActivity());}@Overrideprotected void tearDown() throws Exception {solo.finishOpenedActivities();}@Testpublic void test() {//solo.clickOnMenuItem("Settings");for (int i = 0; i < 10; i ++){solo.clickOnButton("原始数据");}solo.clickOnButton("跳转");solo.goBack();solo.clickOnButton("原始数据");}}

被测工程源码:

主页面:

package com.tangbc.tbutton;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;public class MainActivity extends Activity {private Button button;private TextView textView;private static int i = 0;private Button skipButton;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);button = (Button)findViewById(R.id.button);textView = (TextView)findViewById(R.id.textView);button.setOnClickListener(new ButtonListener());skipButton = (Button)findViewById(R.id.skipbutton);skipButton.setOnClickListener(new SkipButtonListener());}class ButtonListener implements OnClickListener{@Overridepublic void onClick(View v) {i++;System.out.println(i);textView.setText(String.valueOf(i));}}class SkipButtonListener implements OnClickListener{@Overridepublic void onClick(View v) {Intent intent = new Intent();intent.setClass(MainActivity.this, SceondAcitvity.class);startActivity(intent);}}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}

副页面:

package com.tangbc.tbutton;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;public class SceondAcitvity extends Activity{@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.second);Intent intent = getIntent();}}


本文参考:http://www.robotium.cn/archives/210


这篇关于雾山的Robotium学习笔记---环境搭建及入门示例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/933406

相关文章

HTML5 getUserMedia API网页录音实现指南示例小结

《HTML5getUserMediaAPI网页录音实现指南示例小结》本教程将指导你如何利用这一API,结合WebAudioAPI,实现网页录音功能,从获取音频流到处理和保存录音,整个过程将逐步... 目录1. html5 getUserMedia API简介1.1 API概念与历史1.2 功能与优势1.3

spring中的ImportSelector接口示例详解

《spring中的ImportSelector接口示例详解》Spring的ImportSelector接口用于动态选择配置类,实现条件化和模块化配置,关键方法selectImports根据注解信息返回... 目录一、核心作用二、关键方法三、扩展功能四、使用示例五、工作原理六、应用场景七、自定义实现Impor

mysql中insert into的基本用法和一些示例

《mysql中insertinto的基本用法和一些示例》INSERTINTO用于向MySQL表插入新行,支持单行/多行及部分列插入,下面给大家介绍mysql中insertinto的基本用法和一些示例... 目录基本语法插入单行数据插入多行数据插入部分列的数据插入默认值注意事项在mysql中,INSERT I

一文详解如何在idea中快速搭建一个Spring Boot项目

《一文详解如何在idea中快速搭建一个SpringBoot项目》IntelliJIDEA作为Java开发者的‌首选IDE‌,深度集成SpringBoot支持,可一键生成项目骨架、智能配置依赖,这篇文... 目录前言1、创建项目名称2、勾选需要的依赖3、在setting中检查maven4、编写数据源5、开启热

python常见环境管理工具超全解析

《python常见环境管理工具超全解析》在Python开发中,管理多个项目及其依赖项通常是一个挑战,下面:本文主要介绍python常见环境管理工具的相关资料,文中通过代码介绍的非常详细,需要的朋友... 目录1. conda2. pip3. uvuv 工具自动创建和管理环境的特点4. setup.py5.

OpenCV实现实时颜色检测的示例

《OpenCV实现实时颜色检测的示例》本文主要介绍了OpenCV实现实时颜色检测的示例,通过HSV色彩空间转换和色调范围判断实现红黄绿蓝颜色检测,包含视频捕捉、区域标记、颜色分析等功能,具有一定的参考... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间

Python中使用uv创建环境及原理举例详解

《Python中使用uv创建环境及原理举例详解》uv是Astral团队开发的高性能Python工具,整合包管理、虚拟环境、Python版本控制等功能,:本文主要介绍Python中使用uv创建环境及... 目录一、uv工具简介核心特点:二、安装uv1. 通过pip安装2. 通过脚本安装验证安装:配置镜像源(可

C++ 函数 strftime 和时间格式示例详解

《C++函数strftime和时间格式示例详解》strftime是C/C++标准库中用于格式化日期和时间的函数,定义在ctime头文件中,它将tm结构体中的时间信息转换为指定格式的字符串,是处理... 目录C++ 函数 strftipythonme 详解一、函数原型二、功能描述三、格式字符串说明四、返回值五

LiteFlow轻量级工作流引擎使用示例详解

《LiteFlow轻量级工作流引擎使用示例详解》:本文主要介绍LiteFlow是一个灵活、简洁且轻量的工作流引擎,适合用于中小型项目和微服务架构中的流程编排,本文给大家介绍LiteFlow轻量级工... 目录1. LiteFlow 主要特点2. 工作流定义方式3. LiteFlow 流程示例4. LiteF

MyBatis ResultMap 的基本用法示例详解

《MyBatisResultMap的基本用法示例详解》在MyBatis中,resultMap用于定义数据库查询结果到Java对象属性的映射关系,本文给大家介绍MyBatisResultMap的基本... 目录MyBATis 中的 resultMap1. resultMap 的基本语法2. 简单的 resul