单元测试及日志输出总结

应用进行单元测试

<?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-sdk android:minSdkVersion="10"/>

 

    <application

        android:icon="@drawable/ic_launcher"

        android:label="@string/app_name">

        <!—引入单元测试库类-->

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

      

        <activity android:name=".MainActivity">

            <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"

   <!—指定单元测试类所在的包,要与相应的package相同-->

        android:targetPackage="cn.class3g"

   <!—指定单元测试的名称-->

        android:label="MyJunitTest"

        />

  </manifest>

编写要测试的代码:

User.java

packagecn.class3g;

 

public class User {

   public void func1(){

      String s = "abc";

      int i = new Integer(s);

   }

   public int func2(){

      return 20;

     

   }

}

测试类,测试方法

MyTest.java

packagecn.class3g;

 

importandroid.test.AndroidTestCase;

 

public class MyTest extends AndroidTestCase {

   public void testFunc1() throws Throwable{

     

      User u = new User();

      u.func1();

  

   }

   public void testFunc2() throws Throwable{

      User u = new User();

      this.assertEquals(20, u.func2());

   }

}

一般需要把异常原样输出,不要捕获,否则测试没有意义了

在菜单栏windows—>Show View-->OutLine,找到要测试的方法然后右击Run AsàAndroidJunit Test,开始测试

Debug测试

public class Test1 {

   public static void main(String[] args) {

     

      int j=10;

      for(int i=0; i<100; i++){

         j = i*2;

         show();

      }

   }

      public static void show(){

         System.out.println("show starting");

         System.out.println("game over");

      }

}

 

 

 

在想断点的那句代码前面 双击鼠标就会出现一个小点点。运行的时候必须得Debug As—>java Application运行

F5   step into         进入方法中,

F6   step over        一步步向下走,

F7   stop return     从方法中跳出,

F8   resume           执行到下一个断点,没有断点就到程序结束

日志输出

packagecn.class3g;

 

importandroid.app.Activity;

importandroid.os.Bundle;

importandroid.util.Log;

 

publicclass MainActivity extends Activity {

       public static String MYTAG ="mytag";

       protected void onCreate(BundlesavedInstanceState) {

              Log.i(MYTAG, "onCreatestarting......");

              super.onCreate(savedInstanceState);

              Log.i(MYTAG, "prepare to setview");

              this.setContentView(R.layout.main);

             

              Log.i(MYTAG, "onCreatestarted");

       }

      

}

在windows—>Show View-àLogCat(deprecated)输出。

 

利用键盘或触摸实现多个布局页面的实现

packagecn.class3g.activity;

 

importandroid.app.Activity;

importandroid.os.Bundle;

importandroid.util.Log;

importandroid.view.KeyEvent;

importandroid.view.MotionEvent;

importandroid.widget.Toast;

 

publicclass FirstActivity extends Activity {

       boolean flag = true;

    private final static String TAG ="mytag";

    @Override

    public void onCreate(BundlesavedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

    }

    public boolean onKeyDown(int keyCode,KeyEvent event){

           Log.i(TAG,"onKeyDown...");

           showInfo("key按下" + keyCode);

           returnsuper.onKeyDown(keyCode, event);

    }

       @Override

       public boolean onKeyUp(int keyCode,KeyEvent event) {

              Log.i(TAG,"onKeyUp....");

              showInfo("key放开"+keyCode);

              return super.onKeyUp(keyCode, event);

       }

       @Override

       public boolean onTouchEvent(MotionEventevent) {

              showInfo("触摸,坐标为:x="+event.getX()+"y="+event.getY());

             

              flag = !flag;

              if(flag){

                     this.setContentView(R.layout.main);

              }else{

                     this.setContentView(R.layout.second);

              }

              Log.i(TAG,"onTouchEvent....");

              return super.onTouchEvent(event);

       }

       public void showInfo(String info){

              Toast.makeText(this, info,Toast.LENGTH_SHORT).show();

       }

      

   

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值