2015-08-28 44 views
0

我在robotium中編寫測試以測試我的應用程序流時出現問題。在我的主屏幕(Fragment)上,我有一個seekbar,它正在計算onStopTrackingTouch(Seekbar sb)方法中的一些數據。這些數據用於打開更多細節的新片段。通過使用機器人setProgressBar()似乎它在正確的位置設置了進度,但此方法未被調用,因此我無法繼續下一個片段。有什麼辦法來模擬正確的用戶行爲,這會觸發這種方法嗎?Robotium setProgressBar - onStopTrackingTouch未被觸發

英語不是我的母語,所以請原諒我的錯誤。 :)

回答

0

我在我的情況做了一個小的解決方法,因爲反射並沒有解決我的問題(或者可能我不知道如何實現解決方案)。只是一個簡單的拖動視圖:

SeekBar seekBar = (SeekBar) solo.getView(R.id.distanceBar); 
      int[] seekBarLocation = new int[2]; 
      seekBar.getLocationOnScreen(seekBarLocation); 
      final float xStart = seekBarLocation[0]; 
      final float yStart = seekBarLocation[1]+seekBar.getHeight()/2; 
      final float xEnd= xStart+seekBar.getWidth()/2; 
      final float yEnd = yStart; 
      solo.drag(xStart, xEnd,yStart,yEnd,50); 
0

請考慮使用Reflection並直接調用setProgress方法。 請參閱想法詳細信息here

+0

謝謝你的答案,但你能給我一點提示它應該怎麼做?我的意思是,我嘗試過使用鏈接中的代碼,它設置了我的seekBar,但它仍然不會觸發我在片段中重寫的onStopTrackingTouch。 – fenrirx22