文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Android日志输出、单元测试

2022-06-06 12:57

关注

  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:minSdkVersionuses-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:该参数为希望输出的信息的内容。 一般将第一个参数定义成一个静态常量。

 


阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-移动开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯