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

时间:2018-07-16 15:34:25

标签: android unit-testing testing mvvm viewmodel

因此,我必须编写单元测试,并且需要测试ViewModel。

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

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

有人能效法我的榜样吗?还是我必须进行仪器测试而不是单元测试?

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

谢谢

1 个答案:

答案 0 :(得分:0)

here所述:

map