Я хочу протестировать фрагмент UserConnectFragment, который содержит переменную PlateformConnect. Этот класс имеет метод для инициализации Facebook SDK:Robolectric: как тестировать класс, который использует экземпляр приложения внутри?
@Override
public void create() {
FacebookSdk.sdkInitialize(MyApplication.getInstance().getApplicationContext());
}
Я Увеличенная Android приложения с MyApplication класса.
В UserConnectFragment, я использую PlateformConnect так:
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
// Must be done before the content view assignement!
PlateformConnect.getInstance().create();
...
В моем Robolectric испытания класса:
@Before
public void setUp() throws Exception {
// Create basic activity, and add fragment
mActivity = Robolectric.buildActivity(FragmentActivity.class).create().start().resume().get();
mUserConnectFragment = new UserConnectFragment();
addMapFragment(mActivity, mUserConnectFragment);
//mLoginButton = (Button) mActivity.findViewById(R.id.facebook_button);
}
Существует аварии, когда этот тест работает:
java.lang.NullPointerException
at com.xxx.yyyy.ui.intro.UserConnectFragment.onViewCreated(UserConnectFragment.java:77)
И эта ошибка появляется, потому что я использую:
MyApplication.getInstance().getApplicationContext()
... и getInstance() возвращает null.
В моем приложении я использую MyApplication.getInstance() в большом классе, так как я могу это сделать, чтобы проверить с помощью Robolectric ??
Спасибо, ребята!