Java 如何绑定没有@Default限定符的类实例

Java 如何绑定没有@Default限定符的类实例,java,junit5,jboss-weld,Java,Junit5,Jboss Weld,我正在使用weld junit在测试中使用CDI 如何注入我以前创建的类的实例?就像我在从AbstractBinder扩展而来的Binder中所做的一样 我的测试班: @EnableWeld public class VersionProcessTest { @WeldSetup public WeldInitiator weld = WeldInitiator .of(VersionProcess.class); @Test publ

我正在使用weld junit在测试中使用CDI

如何注入我以前创建的类的实例?就像我在从AbstractBinder扩展而来的Binder中所做的一样

我的测试班:

@EnableWeld
public class VersionProcessTest {

    @WeldSetup
    public WeldInitiator weld = WeldInitiator
            .of(VersionProcess.class);

    @Test
    public void GetSolversVersion() throws DirectoryNotFoundException {

        weld.event().select(FileService.class).fire(new FileService("workDir", "solverTest"));

        String version = weld.select(VersionProcess.class).get().execute();
        assertThat("should return version string", version, instanceOf(String.class));
    }
}
我的活页夹:

public class TestBinder extends AbstractBinder {
    @Override
    protected void configure() {
        bind(new FileService("test")).to(FileService.class);
        bind(SolverVersionApiServiceImpl.class).to(SolverVersionApiService.class);
    }
}

所以我真正想要的是为我的注入类声明一个products

为此,我添加了FileService的Products声明(注入类):

并更改WeldInitiator声明以设置包含@Products注释的类,在我的示例中是TestClass,因此:

@WeldSetup
public WeldInitiator weld = WeldInitiator.from(VersionProcess.class, VersionProcessTest.class).activate(RequestScoped.class).build();
瞧,它正在为VersionProcess类进行依赖注入

@WeldSetup
public WeldInitiator weld = WeldInitiator.from(VersionProcess.class, VersionProcessTest.class).activate(RequestScoped.class).build();