Espresso, Dagger2 set ViemodelProvider.Factory on BaseActivity

后端 未结 4 1689
[愿得一人]
[愿得一人] 2021-01-11 09:19

I have an abstract AccountRequiredActivity that looks like this (and works fine):

public abstract class AccountRequiredActivity extends LifecycleActivity {
         


        
4条回答
  •  半阙折子戏
    2021-01-11 10:06

    I solved the problem by overriding AndroidInjector's inject() method:

    @Override
    public AndroidInjector activityInjector() {
        return new AndroidInjector() {
            @Override
            public void inject(Activity instance) {
                AccountViewModel viewModel = mock( AccountViewModel.class );
                if(instance instanceof TestHomeActivity) {
                    ((TestHomeActivity) instance).viewModelFactory = ViewModelUtil.createFor( viewModel );
                }
            }
        };
    } 
    

提交回复
热议问题