当前位置:首页 » 安卓系统 » androidjunit单元测试

androidjunit单元测试

发布时间: 2023-09-13 15:08:33

‘壹’ 做Android手机软件测试需要掌握哪些工具

请注意测试本身不是靠工具的而是靠设计,这是我的理念,所以我一向觉得,很多人认为做测试做的好就是靠掌握一门好的工具,这个观点是不正确的,所以我可以负责任的告诉你,做Android手机需要掌握的不是工具、而是理念、思维、以及框架,总的来说是本质,而工具只是辅助,那么现在我来介绍一些我了解的工具(仅仅是了解,很多没用过)
开源 Android 软件测试工具包括:Android Test Kit, AndroidJUnit4, Appium, calabash-android, Monkey, MonkeyTalk, NativeDriver, Robolectric, RoboSpock, Robotium, UIAutomator, Selendroid。
Android Test Kit
Android Test Kit 是一组 Google 开源测试工具,用于 Android 平台,包含 Espresso API 可用于编写简洁可靠的 Android UI 测试。
AndroidJUnit4
AndroidJUnit4 是一个让 JUnit 4 可以直接运行在 Android 设备上的开源命令行工具。
Appium
Appium 是一个开源、跨平台的自动化测试工具,用于测试原生和轻量移动应用,支持 iOS, Android 和 FirefoxOS 平台。Appium 驱动苹果的 UIAutomation 库和 Android 的 UiAutomator 框架,使用 Selenium 的 WebDriver JSON 协议。Appinm 的 iOS 支持是基于 Dan Cuellar's 的 iOS Auto. Appium 同时绑定了 Selendroid 用于老的 Android 平台测试。
Calabash-android
calabash-android 是一个基于 Cucumber 的 Android 的功能自动化测试框架。Calabash 允许你写和执行,是开源的自动化移动应用测试工具,支持 Android 和 iOS 原生应用。Calabash 的库允许原生和混合应用的交互测试,交互包括大量的终端用户活动。Calabash 可以媲美 Selenium WebDriver。但是, 需要注意的是 web 应用和桌面环境的交互跟触摸屏应用的交互是不同的。Calabash 专为触摸屏设备的原生应用提供 APIs。
Monkey
Monkey 是 Google 开发的 UI/应用测试工具,也是命令行工具,主要针对压力测试。你可以在任意的模拟器示例或者设备上运行。Monkey 发送一个用户事件的 pseudo-random 流给系统,作为你开发应用的压力测试。
MonkeyTalk
MonkeyTalk 是世界上最强大的移动应用测试工具。MonkeyTalk 自动为 iOS 和 Android 应用进行真实的,功能性交互测试。MonkeyTalk 提供简单的 "smoke tests",复杂数据驱动的测试套件。MonkeyTalk 支持原生,移动和混合应用,真实设备或者模拟器。MonkeyTalk 使得场景捕获非常容易,可以记录高级别,可读的测试脚本。同样的命令可以用在 iOS 和 Android 应用上。你可以记录一个平台的一个测试,并且可以在另外一个平台回放。MonkeyTalk 支持移动触摸和基于手势交互为主的移动体验。点击,拖拽,移动,甚至是手指绘制也可以被记录和回放。
NativeDriver
NativeDriver 是 WebDriver API 的实现,是原生应用 UI 驱动,而不是 web 应用。
Robolectric
Robolectric 是一款Android单元测试框架,使用 Android SDK jar,所以你可以使用测试驱动开发 Android 应用。测试只需几秒就可以在工作站的 JVM 运行。Robolectric 处理视图缩放,资源加载和大量 Android 设备原生的 C 代码实现。Robolectric 允许你做大部分真实设备上可以做的事情,可以在工作站中运行,也可以在常规的 JVM 持续集成环境运行,不需要通过模拟器。
RoboSpock
RoboSpock 是一个开源的 Android 测试框架。提供简单的编写 BDD 行为驱动开发规范的方法,使用Groovy 语音,支持 Google Guice 库。RoboSpock 合并了 Robolectric 和 Spock 的功能。
Robotium
Robotium 是一款国外的Android自动化测试框架,主要针对Android平台的应用进行黑盒自动化测试,它提供了模拟各种手势操作(点击、长 按、滑动等)、查找和断言机制的API,能够对各种控件进行操作。Robotium结合Android官方提供的测试框架达到对应用程序进行自动化的测 试。另外,Robotium 4.0版本已经支持对WebView的操作。Robotium 对Activity,Dialog,Toast,Menu 都是支持的。
UIAutomator
uiautomator 测试框架提高用户界面(UI)的测试效率,通过自动创建功能 UI 测试示例,可以在一个或者多个设备上运行你的应用。
Selendroid
Selendroid 是一个 Android 原生应用的 UI 自动化测试框架。测试使用 Selenium 2 客户端 API 编写。Selendroid 可以在模拟器和实际设备上使用,也可以集成网格节点作为缩放和并行测试。

‘贰’ 怎么删除android studio中的测试单元

Android 自带的 junit单元测试的一些测试类(androidTest测试 需要运行在模拟机或真机上)

1、InstrumentationTestCase框架:

Instrumentation和Activity有点类似,只不过Activity是需要一个界面的,而Instrumentation并不是这样的,我们可以将它理解为一种没有图形界面的,具有启动能力的,用于监控其他类(用Target Package声明)的工具类。

举个例子,利用InstrumentationTestCase 启动一个activity:

在androidTest下新建一个java类,并且继承自InstrumentationTestCase编写一个public void的方法,但是必须要是方法名以test打头,比如testPublishSubject,并不需要@Test注解
?

1
2
3
4
5
6
7
8

public class TestSubject extends InstrumentationTestCase {
private static final String LOG_TAG = "test";

public void testPublishSubject() {

launchActivity("demo.zts.com.demo",SecondActivity.class,null);
}
}

2、ApplicationTestCase——测试整个应用程序的类。它允许你注入一个模拟的Context到应用程序中,在应用程序启动之前初始化测试参数,并在应用程序结束之后销毁之前检查应用程序。

使用Context,你可以浏览资源,文件,数据库等等。基类是AndroidTestCase,一般常见的是它的子类,和特定组件关联。

测试代码如下:
?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

public class MyApp extends Application {
@Override
public void onCreate() {
super.onCreate();

‘叁’ android studio怎么用junit

在java开发中使用junit进行单元测试是常有的事,那么android中呢?答案是肯定的,也可以!

使用方式也非常的简单,只需要在AndroidManifest.xml几加入两行配置,然后写个一类继承AndroidTestCase类即可,其它的跟java使用junit是一样的(比如http://www.tiecou.com)。

AndroidManifest.xml示例代码:

<?xmlversion="1.0"encoding="utf-8"?>
<manifestxmlns:android="http://schemas.android.com/apk/res/android"
package="com.javake.hzy.filesave"
android:versionCode="1"
android:versionName="1.0">
<uses-sdkandroid:minSdkVersion="8"/>
<!--junit测试配置关键配置第一处-->
<instrumentationandroid:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.javake.hzy.filesave"android:label="myapptest"/>
<applicationandroid:icon="@drawable/icon"android:label="@string/app_name">
<!--junit测试配置关键配置第二处-->
<uses-libraryandroid:name="android.test.runner"/>
<activityandroid:name=".FileSave"
android:label="@string/app_name">
<intent-filter>
<actionandroid:name="android.intent.action.MAIN"/>
<categoryandroid:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>

</application>
</manifest>

单元测试类示例代码:

packagecom.javake.hzy.filesave;
importjava.io.FileOutputStream;
importandroid.content.Context;
importandroid.test.AndroidTestCase;

/**
*测试类用于测试文件读写相关操作
*单元测试只需要继承AndroidTestCase类
*测试方法前用test做为前缀即可
*测试时右键runas弹出菜单中选择AndroidJUnitTest
*@authorhzy
*
*/
{
/**
*测试方法1,创建文件并写入字符串
*/
publicvoidtest01(){
Contextcontext=this.getContext();
System.out.println(context);
try{
FileOutputStreamout=context.openFileOutput("hello.txt",Context.MODE_PRIVATE);
out.write("helloworldmynameishzy".getBytes());
out.close();
}catch(Exceptione){
e.printStackTrace();
}
}
}

‘肆’ android junit单元测试怎么获得context

package com.test.hellojunit;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}

‘伍’ as中android junit单元测试怎么用

进行Android单元测试 Menifest.xml中加入: <application>中加入: <uses-library android:name="android.test.runner" /> <application>外面加入: <uses-permission android:name="android.permission.RUN_INSTRUMENTATION" /> <instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="name.feisky.android.test" android:label="Test for my app"/> 编写单元测试代码:必须继承自AndroidTestCase类 package name.feisky.android.test; import android.test.AndroidTestCase; import junit.framework.Assert; public class MyTest extends AndroidTestCase { private static final String Tag="MyTest"; public void testSave() throws Throwable { int i=4+8; Assert.assertEquals(5,i); } public void testSomethingElse() throws Throwable { Assert.assertTrue(1 + 1 == 12); } } 执行测试 IntelliJ中: eclipse中:右键 run as Android JUnit Test 命令行工具: adb shell am instrument -w name.feisky.android.test/android.test.InstrumentationTestRunner 也可以新建一个测试项目进行测试 New > Project > Android > Android Test Project. 添加测试用例类 添加新类,基类设置为android.test.<HelloAndroid> 添加构造函数 添加setUp()方法,这个方法在所有的测试之前进行变量和测试环境的初始化。 @Override protected void setUp() throws Exception { super.setUp(); mActivity = this.getActivity(); mView = (TextView) mActivity.findViewById(com.example.helloandroid.R.id.textview); resourceString = mActivity.getString(com.example.helloandroid.R.string.hello); } 添加testPreconditions()方法,检查初始化环境,只执行一次 public void testPreconditions() { assertNotNull(mView); } 添加单元测试 public void testText() { assertEquals(resourceString,(String)mView.getText()); } 测试 Run As... > Android JUnit Test

热点内容
创建数据库过程 发布:2025-01-31 20:06:31 浏览:429
诺安成长与鑫灵活配置哪个好 发布:2025-01-31 19:58:54 浏览:604
b树磁盘存储 发布:2025-01-31 19:42:53 浏览:837
联想小新air15怎么配置环境 发布:2025-01-31 19:06:57 浏览:968
什么配置玩3a 发布:2025-01-31 19:05:22 浏览:586
phpoa系统 发布:2025-01-31 18:58:42 浏览:10
值e的编程 发布:2025-01-31 18:57:06 浏览:977
安卓手机的软件认证在哪里 发布:2025-01-31 18:57:01 浏览:535
android弹出来 发布:2025-01-31 18:56:56 浏览:232
办公室白领新解压方法 发布:2025-01-31 18:55:23 浏览:558