我一直在使用新的Android應用程序架構組件。關於測試的文檔留下了許多想象。我看過android architecture components testing部分文檔,其含義非常模糊。如何爲Android App體系結構ViewModels創建Android UI測試?
用戶界面&相互作用:這將是您唯一需要進行Android UI Instrumentation測試的時間。測試用戶界面代碼的最佳方法是創建一個Espresso測試。 您可以創建片段併爲其提供模擬ViewModel。由於該片段只與ViewModel對話,因此嘲笑它將足以完全測試此UI
如何通過將ViewModel的模擬傳遞給片段來編寫Espresso測試?我也看了谷歌提供的示例應用程序,他們也不是很有幫助。
假設這是我的示例片段類。
public class ExampleFragment extends LifecycleFragment {
private ExampleViewModel mViewModel;
@Inject ExampleViewModelFactory mViewModelFactory;
public ExampleFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_example, container, false);
}
@Override
public void onActivityCreated(@Nullable final Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
ExampleComponent component = DaggerExampleComponent.builder().build();
component.inject(this);
mViewModel = ViewModelProviders.of(this, mViewModelFactory).get(ExampleViewModel.class);
mViewModel.getExampleString().observe(this, exampleString -> {
//Update UI
});
}
}