我需要在StarterActivity
上运行Android检测测试。这是怎么回事
public class StarterActivity extends BaseActivity<ActivityStarterBinding> {
@Inject
protected StarterViewModel starterViewModel;
@Override
public int getContentView() {
return R.layout.activity_starter;
}
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getApplicationComponent().inject(this);
}
//...
}
我在onStart中调用了starterViewModel
方法。
StarterViewModel
通过构造函数注入:
public class StarterViewModel {
private final AuthDataModel authDataModel;
@Inject
public StarterViewModel(AuthDataModel authDataModel) {
this.authDataModel = authDataModel;
}
@NonNull
public Single<Boolean> isUserLoggedIn() {
return authDataModel.isUserLoggedIn();
}
}
我发现这个非常好的方法Android testing using Dagger 2, Mockito and a custom JUnit rule。但它需要我添加@Provide方法。应用程序组件将成为“上帝组件”,依赖于一堆模块(或一个“上帝模块”)。
如何在不添加@Provide方法并在测试中覆盖它的情况下在Espresso测试中进行模拟?