2015-08-28 46 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