如何对扩展AndroidViewModel的ViewModel进行单元测试.构造函数中的应用程序出现问题



所以我必须编写单元测试,并且我需要测试我的ViewModels。

我有一个基本的ViewModel,这个基本的ViewModel扩展了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的实例时遇到了问题。我尝试了很多事情,但都没有成功。

我已经考虑过扩展ViewModel而不是AndroidViewModel,并创建一个将应用程序上下文传递给我的ViewModels的Factory。但最终,每当我试图创建ViewModel的实例时,我都会遇到同样的问题。

有没有人能给我举个例子来测试这个?或者我必须进行仪器测试而不是单元测试?

我对测试很陌生,所以也许我做得不好,任何帮助都会很棒。

感谢

如上所述:

Mockito.mock(Application::class.java)

最新更新