我已经尝试了一个星期.我已经抓取了所有可用的文章,但他们的实现或示例不足或停止在Espresso测试的步骤.
我的Android应用程序遵循MVP架构(并且是Java)
场景:[仅举一个例子]我有HomeActivity一个HomePresenter使用Dagger2.(提供方法在HomeModule通过a void inject(HomeActivity activity)中暴露出来HomeComponent.
在我的espressoTest中,HomeActivity我想注入一个模拟演示.我还没有暴露内部的这种依赖性AppModule通过AppComponent.网上的大多数例子都是这样的(所以他们只是创建一个新的testApplication然后做必要的)
我不想使用productFlavours注入或提供模拟类的方式,因为它不能让我控制Mockito.when方法.
所以基本上.我想注入一个mockpresenter,我可以做任何Mockito.when()事情,为了我的浓缩咖啡单位测试.
HomeComponent
@HomeScope
@Component(modules = HomeModule.class,dependencies = AppComponent.class)
public interface HomeComponent {
void inject(HomeActivity activity);
}
Run Code Online (Sandbox Code Playgroud)
HomeModule
@Module
public class HomeModule {
private final IHomeContract.View view;
public HomeModule(IHomeContract.View view) {
this.view = view;
}
@Provides
@HomeScope
public IHomeContract.Presenter presenter(FlowsRepository flowsRepository, UserRepository userRepository, LoanRepository loanRepository) {
return new HomePresenter(view, flowsRepository, userRepository, loanRepository);
} …Run Code Online (Sandbox Code Playgroud)