lundi 4 février 2019

I am unable to test SharedPreference using Mockito

I am unable to mock sharedPreference and when i test my presenter then sharepreference instance is null.

@RunWith(MockitoJUnitRunner.class) public class PreferencesPresenterTest {

@Mock
PreferencesMvpView preferencesMvpView;

@Mock
ApiService apiService;

@Mock
Context context;

@Mock
SchedulerProvider mSchedulerProvider;

PreferencesPresenter mPresenter;


@Before
public void setUp() throws Exception {

    CompositeDisposable compositeDisposable = new CompositeDisposable();
    mPresenter = new PreferencesPresenter(compositeDisposable, apiService, mSchedulerProvider);


    // mPrefences = new AppPreferences();
    mPresenter.onAttach(preferencesMvpView);

}

@Test
public void testFilter() throws Exception {
    Mockito.when(mSchedulerProvider.getUiScheduler()).thenReturn(Schedulers.trampoline());
    Mockito.when(mSchedulerProvider.getWorkerScheduler()).thenReturn(Schedulers.trampoline());


    mPresenter.loadPreferenceData();
}

}

//This is the method which i am testing

@Override public void loadPreferenceData() {

    long userId = mPreferences.getLong(AppPreferences.USER_ID);
    getMvpView().showLoading();

    getCompositeDisposable().add(getApiService().getPreferencesData(userId)
            .subscribeOn(getSchedulerProvider().getWorkerScheduler())
            .observeOn(getSchedulerProvider().getUiScheduler())
            .subscribe(
                    jsonObject -> {
                        //Log.d(getClass().getSimpleName(), "PreferencesPresenter : loadPreferenceData: onSuccess");
                        if (!isViewAttached()) {
                            return;
                        }

                        getMvpView().hideLoading();
                        if (jsonObject != null && AppUtils.containsValue(jsonObject, JsonKeys.DATA))
                            setupFieldList(new Gson().fromJson(jsonObject.get(JsonKeys.DATA), Preferences.class));
                    }
                    , throwable -> {
                        // Log.d(getClass().getSimpleName(), "PreferencesPresenter : loadPreferenceData: Error");
                        if (!isViewAttached()) {
                            return;
                        }

                        getMvpView().hideLoading();
                        handleApiError(throwable);
                    }));
}

Aucun commentaire:

Enregistrer un commentaire