如何在使用Robolectric 2.2时添加阴影类?

时间:2013-06-18 18:46:40

标签: robolectric

我正在使用Robolectric进行单元测试,并将我的Robolectric jar从1.2更新到2.2并试图弄清楚如何在这个新版本中绑定阴影类。这就是我以前做的事情:

Robolectric.bindShadowClass(ShadowLog.class);

@Implements(Log.class)
public static class ShadowLog {
    public static int i(java.lang.String tag, java.lang.String msg) {
        System.out.println("[" + tag + "] " + msg);
        return 0;
    }
}

但我认为现在没有bindShadowClass API可用。我尝试使用addShadowClass,但我不确定这是否是添加阴影类的正确方法。我可以使用

吗?
ShadowMap a = new ShadowMap.Builder().addShadowClass(ShadowLog.class).build();

我是否需要使用此shadowMap创建一个classHandler或其他东西,如果是,我如何创建和使用该classHandler来访问我的Log类方法?

@Implements(Log.class)
public static class ShadowLog {
    public static int i(java.lang.String tag, java.lang.String msg) {
        System.out.println("[" + tag + "] " + msg);
        return 0;
    }
}

然后Log.i("LogTest", "log message ");

由于 ABHI

1 个答案:

答案 0 :(得分:8)

阴影类的绑定现在替换为@Config注释。

示例:

@Config(shadows = {ShadowLog.class})

另请参阅my answer to this other questionthe Robolectric blog