標籤:測試android應用
如果你編寫完Android應用軟體,要進行一個測試,可以學習這個方法,具體內容如下所示:
用Eclipse建立測試
首先搭建測試環境:
下載安裝Eclipse ADT外掛程式
匯入或建立我們想要測試的Android應用項目。
產生一個對應於應用程式項目測試的測試專案。為匯入項目產生一個測試專案: a.在項目瀏覽器裡,右擊我們的應用項目,然後選擇Android Tools > New Test Project b.在建立Android測試專案面板,為我們的測試專案設定合適的參數,然後點擊Finish
上面環境搭建好後可以進入建立與執行測試案例:
建立一個測試案例
Activity測試都是通過結構化的方式編寫的。請務必把測試代碼放在一個單獨的包內,從而與被測試的代碼分開。
按照慣例,測試包的名稱應該遵循與應用程式套件名相同的命名方式,在應用程式套件名後接“.tests”。在建立的測試包中,為我們的測試案例添加Java類。按照慣例,測試案例名稱也應遵循要測試的Java或Android的類相同的名稱,並增加尾碼“Test”。
要在Eclipse中建立一個新的測試案例可遵循如下步驟:
a. 在Package Explorer中,右鍵點擊待測試工程的src/檔案夾,New > Package。
b. 設定檔案夾名稱<你的包名稱>.tests(比如, com.example.android.testingfun.tests)並點擊Finish。
c. 右鍵點擊建立的測試包,並選擇New > Calss。
d. 設定檔案名稱<你的Activity名稱>Test(比如, MyFirstTestActivityTest),然後點擊Finish。
建立測試資料集(Fixture)
測試資料集包含運行測試前必鬚生成的一些對象。要建立測試資料集,可以在我們的測試中覆寫setUp()和tearDown()方法。測試會在運行任何其它測試方法之前自動執行setUp()方法。我們可以用這些方法使得被測試代碼與測試初始化和清理是分開的。
在你的Eclipse中建立測試資料集:
1 . 在 Package Explorer中雙擊測試開啟之前編寫的測試案例,然後修改測試案例使它繼承ActivityTestCase的子類。比如:
public class MyFirstTestActivityTest extends ActivityInstrumentationTestCase2<MyFirstTestActivity> {
2 . 下一步,給測試案例添加建構函式和setUp()方法,並為我們想測試的Activity添加變數聲明。比如:
public class MyFirstTestActivityTest extends ActivityInstrumentationTestCase2<MyFirstTestActivity> { private MyFirstTestActivity mFirstTestActivity; private TextView mFirstTestText; public MyFirstTestActivityTest() { super(MyFirstTestActivity.class); } @Override protected void setUp() throws Exception { super.setUp(); mFirstTestActivity = getActivity(); mFirstTestText = (TextView) mFirstTestActivity .findViewById(R.id.my_first_test_text_view); }}
建構函式是由測試用的Runner調用,用於初始化測試類別的,而setUp()方法是由測試Runner在其他測試方法開始前啟動並執行。
通常在setUp()方法中,我們應該:
我們可以使用getActivity()方法得到正在測試的Activity的引用。
增加一個測試前提
我們最好在執行測試之前,檢查測試資料集的設定是否正確,以及我們想要測試的對象是否已經正確地初始化。這樣,測試就不會因為有測試資料集的設定錯誤而失敗。按照慣例,驗證測試資料集的方法被稱為testPreconditions()。
例如,我們可能想添加一個像這樣的testPreconditons()方法:
public void testPreconditions() { assertNotNull(“mFirstTestActivity is null”, mFirstTestActivity); assertNotNull(“mFirstTestText is null”, mFirstTestText);}
Assertion(斷言,譯者注)方法源自於JunitAssert類。通常,我們可以使用斷言來驗證某一特定的條件是否是真的。
在這兩種情況下,Runner都會繼續運行其它測試案例的測試方法。
添加一個測試方法來驗證Activity
下一步,添加一個或多個測試方法來驗證Activity布局和功能。
例如,如果我們的Activity含有一個TextView,可以添加如下方法來檢查它是否有正確的標籤文本:
public void testMyFirstTestTextView_labelText() { final String expected = mFirstTestActivity.getString(R.string.my_first_test); final String actual = mFirstTestText.getText().toString(); assertEquals(expected, actual);}
該 testMyFirstTestTextView_labelText() 方法只是簡單的檢查Layout中TextView的預設文本是否和strings.xml資源中定義的文本一樣。
注意:當命名測試方法時,我們可以使用底線將被測試的內容與測試案例區分開。這種風格使得我們可以更容易分清哪些是測試案例。
做這種類型的字串比較時,推薦從資源檔中讀取預期字串,而不是在代碼中硬性編寫字串做比較。這可以防止當資源檔中的字串定義被修改時,會影響到測試的效果。
為了進行比較,預期的和實際的字串都要做為assertEquals()方法的參數。如果值是不一樣的,斷言將拋出一個AssertionFailedError異常。
如果添加了一個testPreconditions()方法,我們可以把測試方法放在testPreconditions之後。
要參看一個完整的測試案例,可以參考本節樣本中的MyFirstTestActivityTest.java。
構建和運行測試
我們可以在Eclipse中的包瀏覽器(Package Explorer)中運行我們的測試。
利用如下步驟構建和運行測試:
串連一個Android裝置,在裝置或模擬器中,開啟設定菜單,選擇開發人員選項並確保啟用USB調試。
在包瀏覽器(Package Explorer)中,按右鍵測試類別,並選擇Run As > Android Junit Test。
在Android裝置選擇對話方塊,選擇剛才串連的裝置,然後單擊“確定”。
在JUnit視圖,驗證測試是否通過,有無錯誤或失敗。
用Gradle version 建立測試
串連Android真機或開啟Android模擬器。
在項目目錄運行如下命令:
./gradlew build connectedCheck
簡單搭建環境,測試Android應用