2014-02-06 49 views
0

我有我需要測試的幾個PreferenceFragment類:Android的單元測試的PreferenceFragment

public class MyPref extends PreferenceFragment 

我怎麼測試呢?

例如我曾嘗試:

public class MyPrefTester extends ActivityInstrumentationTestCase2<MyPref> 

但是失敗,因爲這個Android測試類要求的參數從活動繼承。 PreferenceFragment繼承Fragment(由Activity使用)。

有什麼建議?

+1

我不知道您是否熟悉Model-View-Presenter模式,但如果片段位於接口後面,可以更容易地測試演示者邏輯。 –

+2

您正在嘗試使用Fragment上的ActivityInstrumentationTestCase2。這顯然不會起作用,而是在一個Activity上使用它。 – Schoentoon

回答

1

我一直在努力在過去幾周同樣的問題,這是我的方法:

  1. 從中這個片段將被實例化的活動創建ActivityInstrumentationTestCase2。
  2. 使用robotium庫轉到偏好片段屏幕。
  3. 使用機器人進行更改。
  4. 修改片段的onDestroy方法以廣播具有首選項更改的意圖。
  5. 在您用於此測試用例的ActivityInstrumentationTestCase2中創建一個廣播接收器。
  6. 從此片段返回以確保首選項已保存並調用onDestroy
  7. 在onDestroy上接收到意圖時,保存更改。
  8. 回到片段並確保接收到的保存值與所示相同。希望這有助於。