我有组件加模块的设置,比如FooComponent
和FooModule,它提供了一个简单的单例,需要在其中一个测试变体中替换。因此,在变体中我改为FooTestComponent
,其继承FooComponent
,但其@Modules
注释指向另一个模块,FooTestModule
。到目前为止,FooModule
仅提供一个依赖项,因此没有问题。
但是,由于在测试中不需要替换的依赖项被添加到FooModule
,我发现自己被迫复制所有方法以在FooTestModule
中提供它们,因为它们可以“{1}}。被提取到FooModule
和FooTestModule
继承的父抽象模块。避免这种重复的方法是什么?
答案 0 :(得分:2)
好吧,这就是显而易见的:我真的不确定这是标准的做法,但删除FooTestComponent
并从FooTestModule
删除注释允许{{ 1}}继承自FooTestModule
,然后您可以实例化FooModule
,只覆盖(但不注释)您需要模拟的FooTestModule
方法。
答案 1 :(得分:2)
Dagger 2 User's Guide Testing Section包含针对这种情况的建议。
总结那里的建议: