如果我们要对一个Activity界面上的一个按钮的点击事件进行单元测试,则可使用ActivityInstrumentationTestCase2类来进行测试。
首先我们定义一个测试类:
public class TestOneActivity extends
ActivityInstrumentationTestCase2<OneActivity> {
public TestOneActivity() {
super("com.hc.bai", OneActivity.class);
}
}
其中,OneActivity代表被测试的Activity,TestOneActivity()为该测试类的构造函数,super有两个参数,第一个是包名,我这为“com.hc.bai”。如果在你要测试的Activity的onCreate函数中,需要接受来自启动该Activity的页面传来的参数,可以在测试类中摸你传值,在这我们可以重写测试类的getActivity()函数,如下:
@Override
public OneActivity getActivity() {
OneActivity a;
Intent i = new Intent();
Bundle b = new Bundle();
b.putString("name", "sss");
b.putString("id", "sss");
// a = launchActivityWithIntent(targetPackage, OneActivity.class,
// i);
a = launchActivity(targetPackage, OneActivity.class, b);
setActivity(a);
System.out.println("getActivity--------------------------");
return a;
}
通过在getActivity中执行launchActivityWithIntent或launchActivity,我们就可以将参数传递给被测试的Activity。在测试中,我们要对该界面上的一个Button进行测试,则我们还需要在Setup中定义该Button
private Button bt;
OneActivity one;
protected void setUp() throws Exception {
one = getActivity();
bt = (Button) one.findViewById(R.id.bt_test);
System.out.println("setup********************");
}
之后我们就可以完成我们的测试函数:
public void testOne() {
one.runOnUiThread(new Runnable() {
public void run() {
//Looper.getMainLooper();
bt.performClick();
}
});
getInstrumentation().waitForIdleSync();
。。。
}
可以看到,我们需要在runOnUiThread中调用bt.performClick()事件,如果直接调用该事件,则程序会出现异常,getInstrumentation().waitForIdleSync()这一句是同步等待应用程序被闲置,之后,我们责可以写类似于assertEquals、assertTrue等函数。
}
分享到:
相关推荐
学习Android有一段时间了,虽然前段时间对软件测试有了一些了解,不过接触android的单元测试却是头一次。这几天在物流大赛上也用了不少时间,所以对于android的单元测试没有太深入的研究,所以先写个基本入门吧!...
5. **Instrumentation Tests**:虽然题目主要提到的是单元测试,但值得一提的是,Android也支持集成测试或instrumentation测试,它们可以访问Android系统服务并测试UI。这些测试通常在真实设备或模拟器上运行,比...
单元测试是对软件中的最小可测试单元进行检查和验证,如函数、方法或类。它的目标是确保代码的每一个部分都能正常工作,并且在修改后不会破坏现有的功能。在Android环境中,我们通常会测试Activity、Service、...
单元测试是对软件中的最小可测试单元进行检查和验证,如函数、方法或对象。其目的是确保每个组件都能独立地按预期工作,以便于早期发现和修复问题。 在Android Studio中,我们可以使用JUnit4框架进行单元测试,它是...
在单元测试场景下,Instrumentation能够通过命令行启动一组测试,并以命令行形式返回测试结果,从而避免了为测试编写专门用户界面的需求。 ##### 4.2 使用Instrumentation进行测试 - **测试流程**:首先,定义一...
首先,Android单元测试通常使用JUnit框架进行,这是一个广泛应用于Java平台的轻量级测试框架。在Android环境中,JUnit与Android Testing Support Library结合使用,提供对Android组件的测试支持,如Activity、...
使用JUnit进行Android单元测试时,需要注意,因为Android SDK提供的JUnit版本可能不包含完整的实现,所以可能需要在运行配置中指定JRE,并添加JUnit库。如果在Eclipse中,可以通过`Run Configurations`来调整`...
8. Instrumentation测试:与纯Java单元测试不同,Android的单元测试通常被称为Instrumentation测试,因为它们需要在Android环境中运行,并由一个称为Instrumentation的进程控制。 9. Robolectric:对于不涉及UI的...
本篇主要将深入探讨Android界面开发的相关知识点,包括布局管理器、控件使用、自定义视图、动画效果、适配策略以及测试方法。 首先,Android界面的基础是布局(Layout)。Android提供了多种布局管理器,如线性布局...
Espresso则是Android平台上的一个强大的UI测试库,它允许开发者编写直观且同步的用户界面测试。Espresso通过观察并响应UI事件流,确保应用在特定的用户交互后产生正确的结果。例如,你可以使用Espresso的onView()...
1. **单元测试(Unit Tests)**:针对代码中的最小可测试单元进行,例如单个方法或类。通常使用JUnit框架,并可以通过Mockito等工具模拟依赖关系,确保测试的隔离性。 2. **仪器测试(Instrumentation Tests)**:...
总之,Android Studio为Android应用的测试提供了全方位的支持,包括单元测试、UI测试、Mockito集成、Instrumentation测试和持续集成等。熟练掌握这些测试技术,将有助于提升代码质量和应用稳定性。
在单元测试方法中添加实现,展开test/项目包名下单元测试类,选择要测试的方法,点右键,选择Run As->Android JUnit Test,就会打开单元测试结果界面。如果该方法无错误,则结果会显示绿色状态条。 Android单元...
AndroidX Test提供了一套全面的测试支持,包括 Espresso用于UI测试,Robolectric用于模拟Android环境进行单元测试。 1. **Mockito** 是一个流行的Java mocking框架,可以模拟Activity的依赖,使我们能在测试中控制...
通过ASE,可以便捷地调用Android API,进行自动化测试和简化任务界面,特别适合进行功能测试和交互式测试。 5. **Monkey工具**:Monkey是压力测试工具,它向系统发送随机的用户事件流,如按键、触摸屏输入,用于...
通常,Instrumentation用于编写单元测试和功能测试,可以配合JUnit等测试库使用。在`UiAutomator-BasicSample`中,虽然主要展示的是UiAutomator的用法,但理解Instrumentation对于完整测试方案的构建至关重要。 在`...