一、Android的Junit測試
一般的JUnit我們都用過,而針對Android的JUnit也是類似於這種,顯示的結果也是綠條和紅條。
單元測試整體架構如下:
我們這裡只介紹其中一個類:AndroidTestCase;
二、AndroidTestCase
程式描述:建立一個Android項目:Activity,添加一個EditText,其他不做任何事;
import android.app.Activity;import android.os.Bundle;import android.widget.EditText;public class MainActivity extends Activity {private EditText et1; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); et1 = (EditText)this.findViewById(R.id.et1); if(savedInstanceState!=null){ et1.setText(savedInstanceState.getString("name")); } } public int add(int a,int b){ return a+b; }}
如果我們要進行單元測試通常有兩種方法:
(1)直接在項目工程下建立單元測試
(2)建立一個Android Test Project
1.直接建立單元測試類
步驟1:在AndroidManifest.xml中添加如下:
<application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <uses-library android:name="android.test.runner" /> //添加此行代碼 </application>
<application/> <instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="org.xiazdong" /> //要測試的Activity所在包
步驟2:添加單元測試類
import org.xiazdong.MainActivity;import android.content.Context;import android.test.AndroidTestCase;import android.widget.EditText;public class MainActivityTest extends AndroidTestCase{private MainActivity mainActivity;private Context context;@Overrideprotected void setUp() throws Exception {super.setUp();mainActivity = new MainActivity(); //直接建立Activity執行個體context = this.getContext();//獲得上下文}//測試add方法public void testAdd(){MainActivity ma = new MainActivity();int a = ma.add(2, 3);assertEquals(5, a);}}
測試即可;
2.建立單元測試工程
這樣的好處是不用再配置AndroidManifest.xml,直接建立測試類別即可;
注意:此類的單元測試因為只涉及商務邏輯,因此不能使用findViewById之類的和視圖有關的函數;這裡也只是測試了一個業務函數:add;