2015-12-01 6 views
0

В моем проекте есть несколько сторонних библиотек, таких как crashlytics, facebook sdk и т. Д. Некоторые из них требуют инициализации при запуске активности, однако при тестировании блока градации он будет терпеть неудачу, как этого избежать? высмеивать или использовать флаг времени выполнения, чтобы обойти его?Robolectric с сторонними библиотеками

ответ

1

Оба способа работы, но насмешка лучше ИМО. Для статических методов вам нужно также обернуть их в нестатический контекст, так что Mockito может сделать свою магию. Кроме того, теперь вы можете делать утверждения в своих журналах.

Crashlytics, вы бы завернуть с экземпляром Logger интерфейса:

public interface Logger { 

    void setup(Context context); 

.... 

} 

И сама обертка бы вызвать статический контекст:

public class CrashlyticsLogger implements Logger { 

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

... 

}