zoukankan      html  css  js  c++  java
  • ANDROID 单元测试

    android.test.ActivityInstrumentationTestCase2

    一、在Manifest.xml加入

    <uses-library android:name="android.test.runner" />
    <uses-permission android:name="android.permission.RUN_INSTRUMENTATION" />
    <instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="com.travelsky.android.test"
    android:label="Test for my app"/>


    二、编写单元测试代码:必须继承自AndroidTestCase

    package com.travelsky.android.test;
       
    import android.test.AndroidTestCase;
    import junit.framework.Assert;
       
    public class MyTest extends AndroidTestCase {
    private static final String Tag="MyTest";
       
    public void testSave() throws Throwable
    {
    int i=4+8;
    Assert.assertEquals(5,i);
    }
       
    public void testSomethingElse() throws Throwable {
    Assert.assertTrue(1 + 1 == 12);
    }
       
    }
    run--> Android JUnit Test

    运行后会,会出现如下警告:   
    Warning: No instrumentation runner found for the launch, using   
    android.test.InstrumentationTestRunner.   
    模拟器不能记住Androidmanifest的配置,在运行时需要重新设置运行配置,如下:   
    1.在工程名字上点击右键,选择properties   
    2.在Run/Debug setting中选择要运行的工程名字,点击右边的Edit,会进入下面的界面,   
    在 instrumentation runner后面的下拉列表中选择:android.test.InstrumentationTestRunner   
    3.重新运行该测试单元,则就不会出现上面的警告了。

    还可以继承android.test.ActivityInstrumentationTestCase2<T>

    添加构造函数
    添加setUp()方法,这个方法在所有的测试之前进行变量和测试环境的初始化。

    @Override
        protected void setUp() throws Exception {
            super.setUp();
            mActivity = this.getActivity();
            mView = (TextView) mActivity.findViewById(com.example.helloandroid.R.id.textview);
            resourceString = mActivity.getString(com.example.helloandroid.R.string.hello);
        }
    添加testPreconditions()方法,检查初始化环境,只执行一次
    public void testPreconditions() {
          assertNotNull(mView);
        }
    添加单元测试
    public void testText() {
          assertEquals(resourceString,(String)mView.getText());
        }

    这时候会遇到这样一个问题, 运行的时候提示Test run failed: Test run incomplete. Expected 1 tests, received 0。
    后来找到是构造函数的事,于是把泛型去掉, 然后用不带参数的构造函数,在构造函数里调用super(“com.travelsky.test”, ActivityName.class); 就Ok了。


    REFERENCES:http://www.189works.com/article-19108-1.html

    http://www.cnblogs.com/GnagWang/archive/2011/07/08/2101066.html

    http://www.cnblogs.com/feisky/archive/2012/03/09/1783826.html




    ---------------------------------------------------------------------------------------------------------------------------------
    copyright:http://www.cnblogs.com/anee/
  • 相关阅读:
    windows phone 8 更换锁屏界面图片
    Kinect for Windows 入门与开发
    Windows 8 学习
    windows phone 8 锁屏界面 显示应用程序的消息提醒
    Windows 8 如何在后台播放音频
    C# 4.0 的 Visual Studio 2010 示例
    windows phone 页面切换 动画
    Windows Phone 官方示例学习:Short message dictation and web search grammars sample(语音识别,文字语音)
    Windows Phone 官方示例学习:Background Transfer Service Sample(后台传输)
    打日志流程
  • 原文地址:https://www.cnblogs.com/anee/p/2675741.html
Copyright © 2011-2022 走看看