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

android单元测试框架

发布时间: 2022-01-09 12:56:07

1. android ui单元测试框架有哪些

可以参考http://www.open-open.com/lib/view/open1433814526504.html,网络下就知道了。。嘿嘿

2. android中单元测试的几个测试方法怎么不按代码顺序执行

增加一个综合方法不就完了,按顺序执行
测试这一个方法就行了呗

3. android studio怎么进行单元测试

在Android Studio中可以进行单元测试
很多的文章指导你应该在“build.gradle” 文件里面添加几行代码从而允许单元测试,并且告诉你应该在项目依赖中添加Android测试库。
其实你并不需要按照这种错误的方式去做,因为这是完全没有必要的。
Android Studio本身就支持Android单元测试,你只需要在你的项目中配置一下就可以了。
注意:还有好几种广受欢迎的Android单元测试框架,比如Robolectric,它们比我在这里提到的需要更多的配置,我希望在未来可以以这个题目再写一些指导文章。
创建你的单元测试文件夹
我喜欢把单元测试放在我的主项目里面,比如“com.mypath.tests.” ,你可以把测试目录放到你想要的地方。开始之前,像下面这样,先创建你的测试文件夹。(译者注:这一步不是必须的,你也可以把单元测试类创建在与Android Studio默认的ApplicationTest类相同的路径下面)

接下来,创建一个叫做 “ExampleTest”的类,注意要继承自InstrumentationTestCase类

然后可以添加一个简单的测试代码,我们知道这段代码肯定会运行失败
public class ExampleTest extends InstrumentationTestCase {
public void test() throws Exception {
final int expected = 1;
final int reality = 5;
assertEquals(expected, reality);
}
}1234567

注意:所有的测试方法必须以”test”开头,这样Android Studio才能自动的找到所有你想要进行单元测试的方法。
为你的项目配置单元测试
现在我们已经有了一个会运行失败的测试单元,我们必须把它run起来。
首先点击”Run-> Edit Configurations”

然后点击“+”从左边弹出的列表里,选择添加一个 Android Tests,然后你可以在右上角给它改名为你想要的名字。

然后就会创建一下像下面这样的测试项目配置

从下拉菜单中选择你当前的mole

接下来,选择”All in Package”选项,然后把你的刚才创建的测试文件夹选中。你也可以选择“All in Mole”选项,这样Android Studio会自动的找到你整个Mole中的所有测试单元,你也可以通过另外的选项,指定某一个类甚至是测试方法。
做完这一切之后,看起来应该像下面这样

我也喜欢选中下面的“Show chooser dialog”,这样当每次运行的时候,我可以指定如何去运行

现在点击”Apply”然后关闭,你现在应该可以看到你的测试案例已经作为一个可以运行的项目配置在Android Studio上面的工具栏上了

运行我们的单元测试
我使用Genymotion来完成所有的事情,所以开启你的Genymotion然后运行test
在assertion这一行添加一个断点,然后点击 “run debug mode”,目的是为了证明Android Studio确实执行了我们的单元测试。

当你开始你的测试工程之后,你会看到一个叫做“Running Tests…”的显示窗口

当你的测试没有通过,点击“Logcat”然后查看综合的输出结果,看下我们测试失败的原因

通过控制台,你会发现给出的错误理由应该是
“junit.framework.AssertionFailedError: expected:<1> but was:<5>”1

4. android单元测试实用吗有必要吗

表纠结了,单元测试也并没有那么麻烦,如果时间宽松,想整体测试的时候省点bug就单元测试,如果时间比较紧张,简单测试一下就行了,当然还要看看是不是公司硬性要求什么的。

5. android单元测试工具有哪些

这里我们拿“android的ScrollView滚动布局获取数据基础方法”这个示例中利用HttpUtils工具类获得json数据为例,利用单元测试进行测试。
首先,在AndroidManifest.xml清单文件中使用鼠标点击的方法添加android.test.InstrumentationTestRunner(如果使用代码容易出错),之后再添加Instrumentation的Name和Target package,全部自动完成这一过程。具体方法如图。

然后在AndroidManifest中使用Alt+/自动添加单元测试包,单元测试准备工作完成,方法如图。

在第二步中targetPackage指定的包名com.example.layout,意思是在com.example.layout包下所有包下的类都可以进行单元测试,所以我们在该包下建立一个测试类MyTest,并继承AndroidTestCase,写一个testjson()方法,用于测试android语句是否能正确输出json数据,具体代码如下。

写好测试代码之后,进行如图方式执行测试代码。如果出现“绿色”,则测试成功,这样就完成了单元测试,模拟器只需要在旁边挂着,不用模拟器,而可以进行多个函数的独立单元测试,不仅节省了时间,还提高了工作效率。
这是链接http://jingyan..com/article/c1465413a105b00bfcfc4c18.html

6. 如何进行Android单元测试

如何进行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

7. Android Studio的两种单元测试:Androud单元测试和Junit单元测试有什么区别

测试环境都是依赖于某一个环境的,junit就是和main函数一样,没有什么环境依赖直接运行,安卓单元测试的话无非也是测试某些函数,测试接口是否正常,那么就可以用到 mockito这个框架,也就是说可以模拟一些平时不好debug的情况 例如

DbConnect conn = mock(DbConnect);

when(conn.query(anyInt())).thenReturn("{json数据或者其他}");

这样我们就能够比较科学的测试我们想要的函数行为是否正常了,贴一个我的博客链接,你可以直接点mockito官网 网页链接也可以看看我的blog哦网页链接

8. 单元测试和instrumentation测试的区别

Android单元测试是通过junit框架来测试的。Android中建立JUnit测试环境有以下方法。
集成步骤:

1.在androidManifest.xml文件中添加以下代码:
<instrumentation android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.example.junittest" android:label="@string/app_name"
></instrumentation>

2.新建一个测试测试类并继承AndroidTestCase类,编写测试方法,在测试方法内使用断言assert来测试要测试的方法。

3.点击右面的大纲视图,选择要测试的方法,右键,run as --->Android JUnit test 。

9. 如何运行Android sdk sample中的单元测试

测试androidsdk 开发单元测试
安卓模拟器或者真机上跑测试用例速度很慢。构建、部署、启动app,通常需要花费一分钟或者更久。这不是TDD(测试驱动开发)模式.Robolectric提供一种更好的方式。
可能你一直尝试在java IDE中使用junit或者testng直接跑测试用例,但是一直报java.lang.RuntimeException: Stub!异常。
这个异常是因为在jdk中没有android运行环境。而现在Robolectric这款android单元测试工具,模拟了android sdk中的jar包,可以直接在jvm中运行测试用例,这样就大大节省了时间。一个Robolectric测试用例如下:
// Test class for MyActivity @RunWith(RobolectricTestRunner.class) public class MyActivityTest { @Test public void clickingButton_shouldChangeResultsViewText() throws Exception { Activity activity = Robolectric.buildActivity(MyActivity.class).create().get(); Button pressMeButton = (Button) activity.findViewById(R.id.press_me_button); TextView results = (TextView) activity.findViewById(R.id.results_text_view); pressMeButton.performClick(); String resultsText = results.getText().toString(); assertThat(resultsText, equalTo("Testing Android Rocks!")); } }

在安卓模拟器或者真机上跑测试用例速度很慢。构建、部署、启动app,通常需要花费一分钟或者更久。这不是TDD(测试驱动开发)模式.Robolectric提供一种更好的方式。
可能你一直尝试在java IDE中使用junit或者testng直接跑测试用例,但是一直报java.lang.RuntimeException: Stub!异常。
这个异常是因为在jdk中没有android运行环境。而现在Robolectric这款android单元测试工具,模拟了android sdk中的jar包,可以直接在jvm中运行测试用例,这样就大大节省了时间。一个Robolectric测试用例如下:
// Test class for MyActivity
@RunWith(RobolectricTestRunner.class)
public class MyActivityTest {

@Test
public void clickingButton_shouldChangeResultsViewText() throws Exception {
Activity activity = Robolectric.buildActivity(MyActivity.class).create().get();

Button pressMeButton = (Button) activity.findViewById(R.id.press_me_button);
TextView results = (TextView) activity.findViewById(R.id.results_text_view);

pressMeButton.performClick();
String resultsText = results.getText().toString();
assertThat(resultsText, equalTo("Testing Android Rocks!"));
}
}

SDK,Resource和Native Method模拟
Robolectric可以处理控件展示、资源加载和很多使用native C实现的真机上的其他功能。所以我们可以使用Robolectric来模拟真机上的大部分操作。我们可以很方便地获取Robolectric的源码,直接查看它的模拟机制,所以使用Robolectric,我们也可以模拟错误条件和一些真实的传感器信号。
脱离模拟器执行测试用例
Robolectric允许我们在项目工程中或者持续集成(CI如hudson、jenkins)中使用jvm来执行测试用例,所以就省掉了打包、安装的过程,将测试用例的执行时间由分钟级降到秒级。
不再需要Mock框架
使用一些Mock框架,如Mockito或者Android Mock等,可以模拟出android运行环境,达到和Robolectric相同的效果。这是一个有效的方法,但是使用这种方法写出的测试用例,很多情况下就是开发代码的反实现。
Robolectric的测试风格更偏向于黑盒测试,robolectric式的测试用例更加关注与app的表现,而不是android运行环境的实现,所以使用robolectric写出的测试用例更有效。当然这也是看测试人员的喜好,如果喜欢可以同时使用Robolectric和mock框架。

10. Android 开发人员有必要熟练运用各种单元测试框架吗

Android软件测试工具包括:AndroidTestKit,AndroidJUnit4,Appium,calabash-android,Monkey,MonkeyTalk,NativeDriver,Robolectric,RoboSpock,Robotium,UIAutomator,Selendroid。AndroidTestKit是一组Google开源测试工具,用于Android平台,包含EspressoAPI可用于编写简洁可靠的AndroidUI测试。AndroidJUnit4是一个让JUnit4可以直接运行在Android设备上的开源命令行工具。Appium是一个开源、跨平台的自动化测试工具,用于测试原生和轻量移动应用,支持iOS,Android和FirefoxOS平台。Appium驱动苹果的UIAutomation库和Android的UiAutomator框架,使用Selenium的WebDriverJSON协议。Appinm的iOS支持是基于DanCuellar's的iOSAuto.Appium同时绑定了Selendroid用于老的Android平台测试。

热点内容
上传文件文件夹找不到 发布:2024-09-20 00:26:32 浏览:914
承台箍筋加密区 发布:2024-09-20 00:26:31 浏览:227
笔记本什么配置能流畅运行cf 发布:2024-09-20 00:14:19 浏览:951
实测华为编译器 发布:2024-09-19 23:50:52 浏览:821
linux汇总 发布:2024-09-19 23:46:39 浏览:452
阿里云服务器环境搭建教程 发布:2024-09-19 23:21:58 浏览:837
黄色文件夹图标 发布:2024-09-19 23:19:22 浏览:684
mysql数据库导出导入 发布:2024-09-19 23:00:47 浏览:183
lua脚本精灵 发布:2024-09-19 23:00:41 浏览:659
任务栏文件夹图标 发布:2024-09-19 22:54:25 浏览:101