編輯:關於android開發
上一篇講的是如何在Android Studio中進行Junit單元測試,這篇來簡單記錄一下如何針對Activity進行單元測試。
我這裡新建一個UnitTestDemo項目
package com.devilwwj.unittestdemo;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
/**
* Created by wwj_748 on 2016/2/22.17.08
*/
public class LoginActivity extends Activity implements View.OnClickListener{
private Button loginButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
loginButton = (Button) findViewById(R.id.btn_login);
loginButton.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_login:
Intent intent = new Intent(this, IndexActivity.class);
startActivity(intent);
finish();
break;
}
}
}
public class IndexActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_index);
}
}
代碼很簡單就不多解釋。
package com.devilwwj.unittestdemo;
import android.content.Intent;
import android.test.ActivityUnitTestCase;
import android.test.suitebuilder.annotation.MediumTest;
import android.widget.Button;
/**
* Created by wwj_748 on 2016/2/22.17.12
*/
public class LoginActivityTest extends ActivityUnitTestCase {
private Intent mLoginIntent;
// 要這樣才不會報錯
public LoginActivityTest() {
super(LoginActivity.class);
}
@Override
protected void setUp() throws Exception {
super.setUp();
mLoginIntent = new Intent(getInstrumentation().getTargetContext(), LoginActivity.class);
}
@MediumTest
public void testLoginButton_labelTest() {
startActivity(mLoginIntent, null, null);
final Button loginButton = (Button) getActivity().findViewById(R.id.btn_login);
final String buttonText = getActivity().getString(R.string.login);
// String buttonText = "xxxx";
assertEquals("Unexpected button ladel text", buttonText, loginButton.getText());
}
@MediumTest
public void testLoginActivityMoveToIndex() {
startActivity(mLoginIntent, null, null);
final Button loginButton = (Button) getActivity().findViewById(R.id.btn_login);
// 測試Button的點擊事件
loginButton.performClick();
final Intent intent = getStartedActivityIntent();
// 去判斷是否為空,如果為空就說明跳轉失敗
assertNotNull("Intent was null", intent);
// 這一句是判斷你在跳轉後有沒調finish()
assertTrue(isFinishCalled());
}
}
代碼解釋:繼承ActivityUnitTestCase類創建一個針對具體Activity的單元測試類,這裡只是針對LoginActiivty,其他Activity的測試也是類似的。裡面創建了兩個測試方法,testLoginButton_labelTest測試登錄按鈕的文本是否跟期望的值一致,testLoginActivityMoveToIndex方法測試點擊按鈕之後的跳轉。
操作如圖。
對於Android的單元測試,筆者了解的並不多,大家可以嘗試一下在自己項目添加功能模塊的單元測試,單元測試主要是用來驗證邏輯的正確性,降低bug產生的概率,這裡面的好處恐怕真正了解單元測試的人才能明白,筆者也正在學習如何更好的提高開發效率,以後有更多的內容會繼續分享給大家。
(轉)android底部彈出iOS7風格對話選項框(QQ對話框)--第三方開源--IOS_Dialog_Library,android刷ios7本文轉載於:http://
Android筆記——Android中數據的存儲方式(三),android筆記 Android系統集成了一個輕量級的數據庫:SQLite,所以Android對數據庫的支
Unity實現滑頁嵌套(解決ScrollRect嵌套沖突問題) 簡介 由於項目需要+有網友咨詢,所以做了個橫向滑頁+某一橫向滑頁中有豎向滑頁的demo,實現有點繞彎
TCPCOPY 1.0 安裝使用TCPCOPY 1.0 安裝使用簡介TCPCOPY 是一個 tcp 流量的實時復制工具,其1.0版本由網易工程師 @tcpcopy 開發和