在開發 Android App 的環結中,
測試也是很重要的一環,
其中比較常被使用的一個 Test framework 就是 Robolectric 。
這是一個偏向 unit test 的 framework,
本篇文章,
將記錄並分享如何在 Eclipse 的 IDE 中使用 Robolectric。
(也許之後也會分享如何在 Android studio 使用吧!?XD)
老實說,
在官網也有說明,
各位朋友也可以直接到該網址看說明。
以下是我實際驗證的步驟:
1. 在 Eclipse 中 建立一個簡單的 Android App 專案。基本上這專案沒什麼特別注意事項,除了 Target/Compile API 要設為 18 ,這是因為 Robolectric 尚未支援 API 19。
2. 在該專案建立 Test Folder (這名字其實可以隨我們取,沒特定限制。)
3. 在該專案的 libs 下建立新 Folder Test,並把 robolectric-x.x.x-jar-with-dependencies.jar 放進去 。(這裡我覺得 Robolectric lib 不一定要放這理,待會設定 Robolectric 專案,讓該專案找得到就好)
4. 建立新 Java 專案 For Test,要注意是 Java 專案不是 Android 專案喔!
5. 在 新建專案對話框選 "Use project folder as root for sources and class files” ,按下一步
6. 在 Source Tab 選要測試檔案的 root folder,也就是剛剛第二步建立的 folder。
7. 在 Projects Tab 新增第一步建立的 Android App 專案。
8. 在 Libraries Tab 將 第三步中的 jar 檔,透過 Add Jars 放入本測試專案,然後 點 Add External Jar 將 "platforms/android-xx/android.jar” 放入 其中 xx 為 API taget version,我選了 18,接著點 Add Library 選 JUnit 並選Junit4
9. 在 Order and Export Tab 將 android.jar 移動到 robolectric 的下方
10. 點 Run -> "Run Configurations…”,雙擊 Junit,就可以進入設定頁。 給定本測試設定名字,選 “Run all tests in the selected project, package or source folder:” ,Test Runner 選 Junit 4,接著在下方選 "Eclipse JUnit Launcher"
11. 在 Arguments Tab 的 Working directory 中,點 Workspace.. 後選擇第一步建立的 Android App 專案。
12. 完成上面的步驟後,就設好了,我們可以建立一個簡單的測試來驗證是否正常運作。在第四步建立的專案中,新增一個 MainActivityTest 的 class,其 code 大概如下方
package com.example.myproject; import org.robolectric.Robolectric; import org.robolectric.RobolectricTestRunner; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import static org.hamcrest.CoreMatchers.equalTo; import static org.junit.Assert.assertThat; @RunWith(RobolectricTestRunner.class) public class MainActivityTest { MainActivity activity; @Before public void setup() { this.activity = Robolectric.buildActivity(MainActivity.class).create().get(); } @Test public void shouldHaveHappySmiles() throws Exception { String hello = this.activity.getString(R.string.hello_world); assertThat(hello, equalTo("Hello world!")); } }
13. 接著按 Run Junit,如果出現如下方的結果,就是 Robolectric 有設置成功,我們可以開始對 第一步建立的 Android App 專案寫 unit test 了
留言列表