В моем проекте есть несколько сторонних библиотек, таких как crashlytics, facebook sdk и т. Д. Некоторые из них требуют инициализации при запуске активности, однако при тестировании блока градации он будет терпеть неудачу, как этого избежать? высмеивать или использовать флаг времени выполнения, чтобы обойти его?Robolectric с сторонними библиотеками
0
A
ответ
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());
}
...
}