У меня есть базовая модель ViewModel, и эта BaseViewModel расширяет AndroidViewModel. Причина, по которой я расширяю AndroidViewModel, заключается в том, что я могу использовать контекст для Dagger.
Моя BaseViewModel.
Код: Выделить всё
public class BaseViewModel extends AndroidViewModel {
protected @Inject SharedPreferencesHelper sharedPreferencesHelper;
public BaseViewModel(@NonNull Application application) {
super(application);
//Only inject sharedPreferences since it is used in almost all of the VMs.
((CommissioningApplication) getApplication()).getAppComponent().inject(this);
}
По сути, у меня возникли проблемы с созданием экземпляра моей модели представления в модульных тестах. Я пробовал много вещей, но безуспешно.
Я рассмотрел возможность расширения ViewModel вместо AndroidViewModel и создания Factory, которая будет передавать контекст приложения моим ViewModel. Но в конце концов я столкнусь с одной и той же проблемой всякий раз, когда попытаюсь создать экземпляр своей ViewModel.
Есть ли у кого-нибудь пример, которому я мог бы следовать, как это проверить? Или мне придется проводить инструментальное тестирование вместо модульного тестирования?
Я новичок в тестировании, поэтому, возможно, я что-то делаю неправильно, любая помощь будет полезна.
Спасибо
Подробнее здесь: https://stackoverflow.com/questions/513 ... ues-with-t