有没有办法从Robolectric中删除阴影类?

时间:2012-10-02 12:56:48

标签: android testing shadow robolectric

Robolectric有一个名为ShadowMatrix的影子类,但我不想使用它。如何从robolectric中删除它?我希望改为使用原始Matrix类。

2 个答案:

答案 0 :(得分:2)

它无效。在android.jar中只有类和方法的存根(没有body的方法)。这就是你使用Robolectric在Android系统之外运行测试的原因。

你可以做的就是从github repository做一个分叉,改变ShadowMatrix实现,构建并与你的项目一起使用。

答案 1 :(得分:0)

这可能无法解决有关Matrix的具体问题,但我在一次测试中对另一个类ShadowCountDownTimer有类似需求。我通过提供一个不会改变/添加CountDownTimer行为的替代阴影来绕过阴影:

// Shadow with no additional behavior
@Implements(CountDownTimer.class)
public static class DefaultCountDownTimer {
}

// Use this shadow just for this test
@Config(shadows = DefaultCountDownTimer.class)
@Test
public void testSomething() {
}