9

我正在使用Robolectric我的单元测试并将我的Robolectricjar 从 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 ");

谢谢阿比

4

1 回答 1

8

阴影类的绑定现在被@Config注释取代。

例子:

@Config(shadows = {ShadowLog.class})

另请参阅我对其他问题的回答Robolectric 博客

于 2013-07-25T04:01:33.053 回答