我正在尝试在测试类中创建dagger 2组件和/或模块。这是为了创建(测试)组件以测试各个生产模块,而不必在主构建路径中包含那些多余的组件。我发现Dagger 2无法检测到正在测试的声明。如何在gradle中配置它?请参见下面的示例(在main中没有引用任何内容)-(顺便说一句,testAnnotationProcessor 'com.google.dagger:dagger-compiler:2.24'
设置无济于事)。
@RunWith(MockitoJUnitRunner.class)
public class WidgetTest {
@Mock
Widget widget;
@Component(modules= MockedWidgetModule.class)
interface MyWidgetFactory {
Widget getWidget();
}
@Module
class MockedWidgetModule {
@Provides
Widget getWidget() {
return widget;
}
}
@Test
public void widget_useMockWidget() {
MyWidgetFactory factory = DaggerMyWidgetFactory.create();
Widget widget = factory.getWidget();
widget.doWork();
}
}