Guice现场注射和TestNG

时间:2014-12-06 00:58:46

标签: java dependency-injection testng guice

使用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的编写方式?

0 个答案:

没有答案