您如何在测试中定义匕首组件和模块?

时间:2019-09-02 15:09:01

标签: java gradle intellij-idea dagger-2

我正在尝试在测试类中创建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();
    }
}

0 个答案:

没有答案