无法使用Robolectric 3创建阴影类

时间:2015-04-21 14:59:56

标签: android robolectric robolectric-gradle-plugin

我按照Robolectric文档创建了阴影类,但我在测试期间无法运行阴影方法,它总是使用原始方法。

这是我的代码:

原始课程:

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

Shadow类:

@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 studio 1.2
  • robolectric 3.0-rc2
  • robolectric-gradle-plugin 1.0.1

我该如何解决这个问题?

提前致谢

1 个答案:

答案 0 :(得分:2)

你需要一个自定义的robolectric跑步者,你可以在那里注册自己的类,这样他们就可以被遮蔽了。见Robolectric shadow not working