AndroidTestCase 为一Android平台下通用的测试类,它支持所有JUnit的Assert方法和标准的setUp 和tearDown 方法。如果你的测试需要访问应用的资源或者测试方法依赖于Context,可以使用AndroidTestCase 作为基类。
它的类继承关系如下图所示:
Focus2AndroidTest
测试也是Android ApiDemos示例解析(116):Views->Focus->2. Horizontal
但测试的侧重点不一样,Focus2AndroidTest 测试的内容无需启动Activity,而是测试R.layout.focus_2 的布局(资源)中Focus 的顺序是否符合预先设计(可以看作是Activity的一些静态性能),可以通过FocusFinder的方法来测试Focus的一些静态属性,它的代码如下:
public class Focus2AndroidTest
extends AndroidTestCase {
private FocusFinder mFocusFinder;
private ViewGroup mRoot;
private Button mLeftButton;
private Button mCenterButton;
private Button mRightButton;
@Override
protected void setUp() throws Exception {
super.setUp();
mFocusFinder = FocusFinder.getInstance();
// inflate the layout
final Context context = getContext();
final LayoutInflater inflater = LayoutInflater.from(context);
mRoot = (ViewGroup) inflater.inflate(R.layout.focus_2, null);
// manually measure it, and lay it out
mRoot.measure(500, 500);
mRoot.layout(0, 0, 500, 500);
mLeftButton = (Button) mRoot.findViewById(R.id.leftButton);
mCenterButton = (Button) mRoot.findViewById(R.id.centerButton);
mRightButton = (Button) mRoot.findViewById(R.id.rightButton);
}
@SmallTest
public void testPreconditions() {
assertNotNull(mLeftButton);
assertTrue("center button should be right of left button",
mLeftButton.getRight() < mCenterButton.getLeft());
assertTrue("right button should be right of center button",
mCenterButton.getRight() < mRightButton.getLeft());
}
@SmallTest
public void testGoingRightFromLeftButtonJumpsOverCenterToRight() {
assertEquals("right should be next focus from left",
mRightButton,
mFocusFinder.findNextFocus(mRoot, mLeftButton,
View.FOCUS_RIGHT));
}
@SmallTest
public void testGoingLeftFromRightButtonGoesToCenter() {
assertEquals("center should be next focus from right",
mCenterButton,
mFocusFinder.findNextFocus(mRoot, mRightButton,
View.FOCUS_LEFT));
}
}
testGoingRightFromLeftButtonJumpsOverCenterToRight 和 testGoingLeftFromRightButtonGoesToCenter
通过mFocusFinder 的 findNextFocus 来测试 mLeftButton,mRightButton 的下个可以获取焦点的控件是否符合事先的设计。
分享到:
相关推荐
Android review AndroidTestCase
Android[中级教程]第四章_单元测试AndroidTestCase.doc
主要介绍了Android中使用AndroidTestCase的方法实例,本文直接给出实现代码,需要的朋友可以参考下
我们曾经和大家探讨过全面剖析JavaME单元测试理念,其实在Android上... 第一步:新建一个TestCase,记得要继承androidTestCase,才能有getContext()来获取当前的上下文变量,这在Android测试中很重要的,因为很多的
androidtestcase的小例子程序,希望对需要的人有所帮助。
android之Junit 深入研究的工程代码,为我们更好的理解如何来使用androidTestCase进行单元测试开发提供了方便。
一个库jar,提供用于测试为Google Android平台编写的应用程序的API。 com.google.android/android-test/2.3.1/android-test-2.3.1.jar
Android_天气 Udacity提供的“个人Android应用程序项目”。...使用AndroidTestCase进行数据库测试 内容提供商 游标加载器 更新的用户界面 在更大的屏幕上支持多窗格 通知支持+开/关首选项 屏幕截图:
需要5个类: 1.实体类:Person.java ...5.测试类:Test.java(继承AndroidTestCase) 1.Person.java 代码如下:package com.mrzhu.sqltite; public class Person { private int _id; private String name; public
使用不同的模块,我们可以使用不同的测试套件(用于纯Java代码的JUnit,用于Android代码的AndroidTestCase) 模块API src |- main |- |- test: contains all unit tests for this module |- java: code for Unit...