模拟一个util类来返回一个模拟对象?

时间:2013-10-16 20:46:31

标签: android mockito robolectric android-testing

我最近开始在Android上进行测试,并且一直在玩Robolectric和Mockito。我可以使用Robolectric来模拟活动的生命周期。

但是,我的代码依赖静态util函数来检索先前在启动时创建的对象。

有没有办法模拟一个util类来返回一个模拟对象(最好是与真实对象相同的类型)?一直使用Robolectric来控制活动生命周期。

public class SomeActivity extends Activity
{
  @Override
  public void onCreate( Bundle b )
  {
     super.onCreate(b);
     Something thing = SomeUtil.getSomething();  //I want to put my mocked obj in 'thing'
  }
}
class SomeUtil 
{
  Something something;
  // I want to mock what this func returns by returning my own mock obj
  public static Something getSomething()
  {
     return something; 
  }
}

我不仅限于使用Robolectric或Mockito。

1 个答案:

答案 0 :(得分:1)

我没有亲自使用它,但我听说PowerMock允许你模拟静态方法。

根据我的经验,我发现尽可能完全避免使用静态方法并依赖依赖注入/ mockito来模拟依赖关系。