1

Robolectric のドキュメントに従ってシャドウ クラスを作成しましたが、テスト中にシャドウ メソッドを実行できず、常に元のメソッドが使用されます。

これは私のコードです:

元のクラス:

public class Original {
    public void print(){
        System.out.println("Hi from original class!");
    }
}

シャドウ クラス:

@Implements(Original.class)
public class ShadowOriginal {

    @Implementation
    public void print(){
        System.out.println("Hi from shadow class!");
    }
}

テスト:

@RunWith(RobolectricGradleTestRunner.class)
@Config(manifest = "src/main/AndroidManifest.xml",
        emulateSdk = 21,
        reportSdk = 21,
        constants = BuildConfig.class,
        shadows = {ShadowOriginal.class})
public class OasisTests {
    @Test
    public void test() {
        Original t = new Original();
        t.print();
    }
}

テストを実行すると、常に表示されます"Hi from original class!"

私のコードで何が間違っていますか? 私は使用します

  • Android スタジオ 1.2
  • ロボレクトリック 3.0-rc2
  • robolectric-gradle-plugin 1.0.1

この問題を解決するにはどうすればよいですか?

前もって感謝します

4

1 に答える 1

2

独自のクラスを登録してシャドウできるカスタム robolectric ランナーが必要です。Robolectric シャドウが機能しないを参照してください

于 2015-04-22T04:38:48.810 に答える