/ / Robolectricからシャドウクラスを削除する方法はありますか? - アンドロイド、テスト、影、robolectric

Robolectricからシャドークラスを削除する方法はありますか? - アンドロイド、テスト、影、robolectric

ロボエレクトリック というシャドウクラスがあります。 ShadowMatrix しかし、私はそれを使いたくない。robolectricからそれを取り除く方法?私はオリジナルを使いたいと思う Matrix 代わりにクラス。

回答:

回答№1は2

android.jarにはクラスとメソッドのスタブ(ボディのないメソッド)しかありません。そのため、Robolectricを使用してAndroidシステムの外部でテストを実行しているのはそのためです。

あなたができることはからフォークを作ることです githubリポジトリShadowMatrixの実装を変更し、それをビルドしてプロジェクトで使用します。


回答№2の場合は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() {
}