我正在写一个API模块。
同时开发我使用JUnit来运行代码
不过最终一些其他模块会用我的API。
我想使用依赖注入模式
a)凡应该是我的主项,我初始化所有的相关性或全球utils的?
b)本人认为这是整洁使用吉斯注射器,
但我应该在哪里初始化呢?
我正在写一个API模块。
同时开发我使用JUnit来运行代码
不过最终一些其他模块会用我的API。
我想使用依赖注入模式
a)凡应该是我的主项,我初始化所有的相关性或全球utils的?
b)本人认为这是整洁使用吉斯注射器,
但我应该在哪里初始化呢?
这取决于你想要做什么。 我发现,与BoundFieldModule
和@Bind
在吉斯4.0注解,这是最简单的通常只是直接使用吉斯。 例如:
@RunWith(JUnit4.class)
public final class TestMyInjectableCode {
@Bind @Mock @SomeAnnotation Foo myFoo;
@Bind @SomeAnnotation String myAnnotationString = "some constant";
@Bind(lazy = true) @ShouldDoSomeThing Boolean shouldDoSomeThing = false;
@Inject Provider<SystemUnderTest> systemUnderTest;
@Before public void setUpInjector() {
MockitoAnnotations.initMocks(this);
Guice.createInjector(BoundFieldModule.of(this)).injectMembers(this);
}
@Test public void test_ShouldDoSomeThing() {
shouldDoSomeThing = true;
SystemUnderTest sut = systemUnderTest.get();
assertEquals("expected value", sut.getValue());
}
}