Robolectric与第三方库

时间:2015-12-01 02:59:26

标签: android unit-testing robolectric

我的项目包括几个第三方库,如crashlytics,facebook sdk等。其中一些需要在活动启动时进行初始化,但是在gradle单元测试下它会失败,如何避免这种情况?嘲弄或使用运行时标志绕过它?

1 个答案:

答案 0 :(得分:1)

两种方式都可行,但嘲笑是更好的IMO。对于静态方法,您也需要将它们包装在非静态上下文中,因此Mockito可以发挥其魔力。此外,您现在可以对日志执行断言。

Crashlytics,您可以使用Logger接口实例进行换行:

public interface Logger {

    void setup(Context context);

....

}

Wrapper本身会调用静态上下文:

public class CrashlyticsLogger implements Logger {

    @Override
    public void setup(Context context) {
        Fabric.with(context, new Crashlytics());
    }

...

}