Как добавить теневой класс при использовании Robolectric 2.2?

Я использую Robolectric для моего модульного тестирования и обновил мой Robolectric jar от 1.2 до 2.2 и пытается выяснить, как связать теневые классы в этой новой версии. Вот что я делал раньше:--7-->

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;
    }
}

но я думаю, что теперь нет API BINDSHADOWCLASS. Я попытался использовать addShadowClass, но я не уверен, что это правильный способ добавить теневой класс. Могу ли я просто использовать

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

мне нужно создать classHandler или что-то с помощью этого shadowMap и если да, то как создать и использовать этот classHandler для получения доступа к моим методам класса журнала?

@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 ");

спасибо Абхи!--7-->

1 ответов


привязка теневых классов теперь заменяется на @Config Примечание.

пример:

@Config(shadows = {ShadowLog.class})

см. также мой ответ на этот вопрос и блог Robolectric.