一‘、创建一个android工程
该步骤只适合初学者,有一定基础的同学可以跳过该步骤,直接进入步骤二。
1.new project
2.选择Android project进入下面的截图
3.输入项目名称点击next进入下图
4.点击下一步,在出现的界面里面输入包名
5.点击finish就完成了一个简单的android工程。工程的目录结构如下
6.运行界面
二’、Robotium的使用
1.下载robotium的jar文件
在下面的地址下载所需要的jar文件
http://code.google.com/p/robotium/downloads/list
我下载的是4.0的jar包
2.创建一个测试工程
2.选择Android Test Project,选择An existing project to test在下面的工程列表里面选择要测试的工程。
3.输入包名,选择sdk版本后点击finish,完成工程的创建。测试工程的目录结构如下
4.创建一个测试类,创建这个类之后需要在工程中导入我们之前下载的robotium的jar文件到工程中。
package com.android.hello.test; import com.android.hello.HelloActivity; import com.jayway.android.robotium.solo.Solo; import android.test.ActivityInstrumentationTestCase2; public class TestScript extends ActivityInstrumentationTestCase2<HelloActivity>{ private Solo mSolo; public TestScript() { super("com.android.hello", HelloActivity.class); // TODO Auto-generated constructor stub } public void setUp(){ mSolo=new Solo(getInstrumentation(), getActivity()); } public void testText(){ boolean expected =true; System.out.println("mSolo============"+mSolo); boolean actual =mSolo.searchText("Hello") &&mSolo.searchText("World"); assertEquals("The text have not found", expected, actual); } }
这个测试类的作用是检测主界面里面是否有Hello和World两个文本。
5、测试结果如下
三、使用过程中常见的错误
1.提示java.lang.NoClassDefFoundError: com/jayway/android/robotium/solo/Solo
具体的代码如下
java.lang.NoClassDefFoundError: com/jayway/android/robotium/solo/Solo at java.lang.Class.getDeclaredFields(Native Method) at java.lang.Class.getDeclaredFields(Class.java:647) at android.test.ActivityTestCase.scrubClass(ActivityTestCase.java:63) at android.test.ActivityInstrumentationTestCase2.tearDown(ActivityInstrumentationTestCase2.java:172) at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:169) at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:154) at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:545) at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1551) Caused by: java.lang.ClassNotFoundException: com.jayway.android.robotium.solo.Solo at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61) at java.lang.ClassLoader.loadClass(ClassLoader.java:501) at java.lang.ClassLoader.loadClass(ClassLoader.java:461) ... 13 more
大意是没有找到Solo这个类。
解决方法
在HelloTest的工程文件上右键-------Properties---------Java Build Path-----Libraries删掉里面的Android Dependencies和robotium-solo-4.0.jar然后重新导入robotium-solo-4.0.jar。
Order And Export界面选择select All---OK。
点击工具栏里面的project选项------Clean工程即可。
如下图
2.报空指针提示mSolo为空
这里面需要检查setUp这个方法名的大小写一定要正确,否则会不执行该方法里面的代码的。
本文介绍的是如何使用robotium进行白盒测试,后续的文章中将会介绍如何使用robotium进行黑盒测试。敬请关注。
参考文章:
http://blog.csdn.net/brucezhang0/article/details/7449551
http://code.google.com/p/robotium