小编yUd*_*Dis的帖子

如何在ActivityTest中注入Mocked Presenter.即用浓缩咖啡进行仪器测试

我已经尝试了一个星期.我已经抓取了所有可用的文章,但他们的实现或示例不足或停止在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)

tdd android android-espresso dagger-2 android-mvp

6
推荐指数
2
解决办法
321
查看次数

标签 统计

android ×1

android-espresso ×1

android-mvp ×1

dagger-2 ×1

tdd ×1