2
この質問に関連
:Espresso, Dagger2 set ViemodelProvider.Factory on BaseActivityを注入ViewModelFactory.Providerエスプレッソテストのための活動で
私はに関するAndroidの作業エスプレッソテストを取得するためには、私のテスト中に活動のViewModelFactory.Providerを取得するために戻って地獄を経て、アーキテクチャコンポーネント。私はそれが簡単であることを期待、私はそれはそれは断片で作業を取得する例...
@Before
public void init() {
UserFragment fragment = UserFragment.create("foo");
viewModel = mock(UserViewModel.class);
when(viewModel.getUser()).thenReturn(userData);
when(viewModel.getRepositories()).thenReturn(repoListData);
navigationController = mock(NavigationController.class);
fragmentBindingAdapters = mock(FragmentBindingAdapters.class);
fragment.viewModelFactory = ViewModelUtil.createFor(viewModel);
fragment.navigationController = navigationController;
fragment.dataBindingComponent =() -> fragmentBindingAdapters;
activityRule.getActivity().setFragment(fragment);
}
しかし、これは単に活動では動作しませんActivityTestRule
を使用して作成前のアクティビティに依存することはできません。
HasActivityInjector
インターフェイスを使用して、上記の例のようにDagger2と同じ新しい依存性注入フローを続けました。
私はあなたの助けに感謝します!
'.setViewModelFactory()'メソッドではありません – davkutalek