android 单元测试

一、Android单元测试   基本流程   新建一个测试工程( Android TestProject),选择你要测试的工程,或者说你要测试的类所在的工程,创建 测试用例,如果有需要还可以建立TestSuite来配置要测试的用例,最后右键选择测试用例类,run as – >“Android Junit Test” 即可。然后你也可以直接在被测试工程中测试,这样不需要建立测试工程。    1、建立测试工程   图 1    2、选择要测试的工程   图 2    3、选择目标平台   图 3  4、选择finish后,在AndroidManifest.xml中填写如下代码:
<! – 添加InstrumentationTestRunner ,targetPackage修改成你的测试工程的包名即可--> <instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="com.example.umengsocialtest" /> <! – application 添加test runner --> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <! – 添加test runner --> <uses-library android:name="android.test.runner" /> </application>
   5、右键点击测试工程的“src”目录,选择”new”-->“Junit Test Case”,然后输入测试用例名称和要继承的测试类,正常情况下,继承自AndroidTestCase即可,如果你要测试的类依赖于Activity,你可以继承自ActivityInstrumentationTestCase2<T>,其中T为你mock的Activity,你可以在测试工程下新建一个Activity用于测试,这里我们选择继承自ActivityInstrumentationTestCase2。最后选择你要测试的类,这里我选择的是UMAppAdapter。选择”next”,然后选择你要测试的方法,勾选即可。如图4   图 4    6、选择要测试的方法   图 5

  7、如果你要测试的类需要Activity参数,你可以创建一个Activity来用于测试,使用AndroidTestCasse则不需要这么做。代码如下:
public class MockActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } }
   8、在测试用例中,填写代码
public class UMAppAdapterTest extends ActivityInstrumentationTestCase2<MockActivity> { /** * */ private Activity mActivity = null; /** * */ private UMBaseAdapter mAdapter = null; /** * @Title: UMAppAdapterTest * @Description: * UMAppAdapterTest Constructor * * @param activityClass */ public UMAppAdapterTest(Class<MockActivity> activityClass) { super(activityClass); } public UMAppAdapterTest() { super(MockActivity.class); setName("MockActivity"); } @Before protected void setUp() throws Exception { super.setUp(); mActivity = getActivity(); assertNotNull(mActivity); } @After protected void tearDown() throws Exception { super.tearDown(); mActivity = null; clearState(); } @Test public void testGetBitmap() { mAdapter = new UMAppAdapter(mActivity); // 实际会触发截屏操作,返回当前截屏 assertNotNull(mAdapter.getBitmap()); // 使用控制器来截图, 实际上调用的是mAdapter.getBitmap() UMScrShotController controller = UMScrShotController.getInstance(); controller.setAdapter(mAdapter); assertNotNull(controller.takeScreenShot()); } }
  为了篇幅简短,这里只列出了部分测试用例代码。

字体:小中大 |上一篇下一篇|打印 |我要投稿

   二、TestSuite的使用   1、新建一个JunitTest Case,父类选择TestSuite,如图6。   图 6   2、样例代码如下,覆写suite(),然后添加你要测试的测试用例即可。com.example.socialtest.ut.scrshotlib.UMAppAdapterTest是UMAppAdapterTest这个测试用例的完整路径,添加进去即可。多个测试用例使用逗号隔开。如下:
public class YourTestSuite extends TestSuite { public static Test suite() { return new TestSuiteBuilder(SocialTestSuite.class).includePackages( "com.example.socialtest.ut.scrshotlib.UMAppAdapterTest", "com.example.socialtest.ut.scrshotlib.UMScrShotControllerTest" ).build(); } }
  3、最后右键选择你的TestSuite类,选择”runas “, 然后选择android Junit Test即可运行TestSuite.。   如图7。

更多相关文章

  1. cocos2d-x 2.x版本之win32 window移植android 环境搭配 只用NDK
  2. 浅谈android的selector背景选择器
  3. 【不负初心】Android初中高级开发工程师面试复习点
  4. eclipse导入已存在的android工程时遇到AndroidManifest.xml文件
  5. Android(安卓)http超时选项的测试
  6. Andriod自动化测试原理基础
  7. Android的一些安装
  8. Android(安卓)Studio 及日常常用命令
  9. Android(安卓)spinner控件的实现

随机推荐

  1. 解决Asp.net的MVC中Razor常见问题方法
  2. 在Linux下搭建.net core开发环境教程
  3. 有关asp.net如何实现多个文件同时下载问
  4. 讨论在VS2015下使用EF框架的使用方法
  5. .net验证后台页面是否登录实例教程
  6. ScreenUnLock-图形解锁控件使用详解
  7. 基于MVC4+EasyUI开发附件上传组件uploadi
  8. 搭建Visual Stduio 2010开发环境的图文详
  9. 实例分析ASP.NET在MVC5中使用MiniProfile
  10. C#如何计算传入的时间距离今天的时间差的