gpt4 book ai didi

java - 在 Android 中使用单独的组件配置使用 Dagger 2 进行测试

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:42:30 25 4
gpt4 key购买 nike

Dagger 2 documentation suggests providing different configurations使用 ProductionComponentTestComponentinterface 进行测试和生产,如下所示:

@Component(modules = {
OAuthModule.class, // real auth
FooServiceModule.class, // real backend
OtherApplicationModule.class,
/* … */ })
interface ProductionComponent {
Server server();
}

@Component(modules = {
FakeAuthModule.class, // fake auth
FakeFooServiceModule.class, // fake backend
OtherApplicationModule.class,
/* … */})
interface TestComponent extends ProductionComponent {
FakeAuthManager fakeAuthManager();
FakeFooService fakeFooService();
}

假设我们有一个使用 ProductionComponent 的 Android Activity (MyApp):

public class MyApp extends Application {
private ProductionComponent component;

@Override public void onCreate() {
super.onCreate();

component = ProductionComponent.builder()
.serverModule(new ServerModule())
.build();
}
}

通常,在 Android 集成测试中使用 DaggerTestComponent.builder() 而不是 ProductionComponent.builder() 的最佳方式是什么?

我不确定如何使用假货;我应该在 /androidTest 中创建一个 extends MyApp 的新 Activity 吗?或者我应该在设置测试时使用 getter/setter 将新的 DaggerTestComponent 传递到 MyApp 中吗?

最佳答案

如何使用 robolectricMockito

你可以在没有AndroidTest的情况下使用@Test来制作JUnit测试代码。我认为您使用 Mockito 制作了测试 Dagger 应用程序。

此处引用

http://alexzh.com/tutorials/android-testing-mockito-robolectric/ http://sdudzin.blogspot.kr/2011/01/easy-unit-testing-for-android.html

关于java - 在 Android 中使用单独的组件配置使用 Dagger 2 进行测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38278127/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com