Android_TestCase(测试用例)
作者:ben_speed 发布时间:[ 2016/5/20 10:14:14 ] 推荐标签:Android 测试用例
基本Activity 测试用例
创建一个测试用例
在对应要测试Activity的package路径下新建test包,
项目工程结构.png
在改test路径下新建一个FirstActivityTest类(类名+Test后缀)继承ActivityTestCase
public class FirstActivityTest extends ActivityInstrumentationTestCase2<FirstActivity> {
private FirstActivity mFirstActivity;
private TextView mFirstTestTextView;
public FirstActivityTest() {
super(FirstActivity.class);
}
}
构造函数是由测试用的Runner调用,用于初始化测试类的。
测试会在运行任何其它测试方法之前自动执行setUp(Runner调用)方法,可以对一些对象进行赋值
@Override
protected void setUp() throws Exception {
super.setUp();
mFirstActivity = getActivity();
mFirstTestTextView = (TextView) mFirstActivity.findViewById(R.id.first_test_textview);
}
增加一个测试前提检查想要测试的对象是否已经正确地初始化
public void testPreconditions() {
assertNotNull("mFirstTestActivity is null", mFirstActivity);
assertNotNull("mFirstTestText is null", mFirstTestTextView);
}
测试方法测试默认文本是否和 strings.xml 资源中定义的文本一样。
public void testFirstTestTextView_labelText() {
final String expected = mFirstActivity.getString(R.string.hello_world);
final String actual = mFirstTestTextView.getText().toString();
assertEquals("mFirstTestText contains wrong text", expected, actual);
}
manifest.xml中注册测试用例
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<uses-library android:name="android.test.runner" /><!-- 加入测试库 -->
<activity
android:name="com.speed.androidtest.FirstActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<instrumentation
android:name="android.test.InstrumentationTestRunner"
android:label="Tests for com.speed.androidtest"
android:targetPackage="com.speed.androidtest" /><!-- targetPackage 测试类的路径 -->
运行测试用例
项目工程右键Run as ==>Android JUint Test,安装完成后会自动执行测试用例,testFirstTestTextView_labelText执行判断
test_success.png
修改main_activity.xml中的
<TextView
android:id="@+id/first_test_textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="hello" />
执行结果
test_error.png
检测到textview中的文本和资源中定义的不一致
UI组件测试, Button 点击
setUp函数编写
@Override
protected void setUp() throws Exception {
super.setUp();
setActivityInitialTouchMode(true);
mSecondTestUIActivity = getActivity();
mClickMeButton = (Button) mSecondTestUIActivity.findViewById(R.id.second_test_ui_btn);
}
把touch mode设置为真可以防止在执行编写的测试方法时,人为的UI操作获取到控件的焦点(比如,一个按钮会触发它的点击监听器)。确保在调用getActivity()之前调用setActivityInitialTouchMode(true);
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11