使用Guice开发TestNG测试时,请执行以下操作:
@Guice(modules=MyTestModule.class)
public class MyTestClass {
}
使用字段注入来声明测试类的依赖关系非常容易。现在,假设我们有这个:
@Guice(modules=MyTestModule.class)
public class MyTestClass {
@Inject private Foo foo;
@Test
public void myTest() {
Injector injector = Guice.createInjector(new SomeOtherModule());
}
}
由于字段注入,如果SomeOtherModule
未提供Foo
的绑定,myTest()
将因CreationException
而失败,因为它无法创建MyTestClass
,即使我们不打算让测试用该注入器创建MyTestClass
。
有没有办法表达这种意图,而不改为构造函数注入Foo
?也就是说,有没有办法以某种方式使创建注入器不是一个错误,但是在尝试专门配置MyTestClass
时确实使其成为错误,而不改变MyTestClass
的编写方式?