Android日志输出、单元测试

Android日志输出、单元测试

由于这几天睡得晚,导致第二天都没有精神,还晕晕的听课,效率低,我不能熬夜了。下面我来讲讲今天学习的知识点吧。

一、    单元测试

有了测试以后我们遇到bug的时候就好解决了。

单元测试需要以下几步:

1.  首先要在AndroidManifest.xml中加入如下代码:

<uses-library android:name=”android.test.runner”/>

这行代码必须只能放在<application></ application>元素之内,与<activity></activity>平级。

 

<instrumentation android:name=”android.test.InstrumentationTestRunner”

Android:targetPackage=”cn.class3g.action”android:label=”Tests for My App”>


这行代码放在<manifest></manifest>之中。这里的targetPackage指定的包和应用的package相同。如果不相同,就会出现找不到单元测试用例的错误。

2. 编写单元测试代码  测试类必须继承自AndroidTestCase类。

3. 执行测试

让我们来看一个具体的测试项目的实现吧:

1.  创建项目:

  创建名为JunitTest的项目

2.在功能清单文件中配置单元测试环境;

打开功能清单文件,添加上面所述的代码,最终代码如下;

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

    package="cn.class3g"

   android:versionCode="1"

   android:versionName="1.0" >

 

    <uses-sdkandroid:minSdkVersion="10" />

 

    <application

       android:icon="@drawable/ic_launcher"

       android:label="@string/app_name" >

    

        <uses-library android:name="android.test.runner"/>

       

       <activity

           android:label="@string/app_name"

           android:name=".JunitHaoActivity" >

           <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:targetPackage="cn.class3g" android:label="Tests/>

</manifest>


 

新建测试用例

首先在项目位置,右击新建一个UserTests类,在创建这个类的时候要继承AndroidTestCase类;

注意:如果测试方法内部遇到异常,建议直接抛出,而不要捕获异常。异常抛出后会被测试框架获取,之后在控制台显示出来,方便我们了解异常信息。

集体的类文件如下:

 

package cn.class3g;

 

 packagecom.sharpandroid.unitandlog;

 

    import junit.framework.Assert;

 

    import android.test.AndroidTestCase;

 

    import android.util.Log;

 

    public classUserTest extends AndroidTestCase{

 

       private static final StringTAG = "MyTest";

 

       public void testSave()throws Throwable{

 

           int i= 4+8;

 

           Assert.assertEquals(5,i);

 

        }

 

}

Assert类在此的作用是判断所得到的结果与期望值的关系。这里判断i是否等于5。如果相等则通过,不相等,则抛出异常。

 

运行测试用例:

首先要进入大纲视图(outline),如果默认的界面中没有的话,可以通过以下步骤:

window-----showView----outline   就可以了!

 

在大纲视图中找到自己的测试类,然后展开,找到集体的方法,然后选定右击,选择Run as----Android Junit Test 就可以了;

观看结果条,如果是红色说明没有通过,代码有问题,如果是绿色就说明测试通过了。

 

二、日志输出

    我们在开发Android应用时,控制台不会打印出字符串,该字符串会在LogCat中打印出来。在程序中进行信息输出,一般采用android.util.Log类的静态方法就可以实现。Log类所输出的日志的内容从少到多分别是ERROR,WARN,INFO,DEBUG,VERBOSE,对应五种不同类型的首字母,分别对应有Log.e( )、Log.w( )、Log.i()、Log.d( )、Log.v( )五种静态方法。

     

让我们来编写一个日志输出的测试类吧

package cn.class3g;

    import junit.framework.Assert;

 

    import android.test.AndroidTestCase;

 

    import android.util.Log;

 

    public class UserTest extendsAndroidTestCase{

 

        private static final StringTAG = "tag";

 

        public void testSave()throws Throwable{

            int i= 4+8;

            Log.i(TAG, "i = " + i);           

          Assert.assertEquals(5,i);

 }

 

}


 

说明:

Log.i(String tag,String msg);

 tag:为这条信息定义一个标签,在开发时通常采用其所在类的类名,这样方便我们追踪输出的信息。也方便我们在看到信息时知道其由哪个类输出。

msg:该参数为希望输出的信息的内容。 一般将第一个参数定义成一个静态常量。

 

以上内容是学员上课总结,供学习人员参考!

 

 

 

 

 

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值