测试中未考虑JerseyApplication bindFactory排名的属性

时间:2018-09-26 08:48:52

标签: java jersey hk2

出于测试目的,我希望将JerseyApplication中的工厂替换为其他工厂,不幸的是,没有考虑适当的绑定,而是始终使用JerseyApplication.class

中定义的工厂

以下是通过JerseyApplicationorg.glassfish.jersey.internal.inject.AbstractBinder中进行的以下设置

   private class ProductionBinder extends AbstractBinder {
    @Override
    protected void configure() {

        //Production Factory
        bindFactory(SpecificClientFactory.class).to(SpecificClient.class).in(RequestScoped.class);
    }
   }

在基本测试类中,我使用相同的AbstractBinder对其进行设置,并且它对于所有 bind()。to()。in()。ranked(1)都可以正常工作,但不适用于 bindFactory ,例如:

public class BaseAPITest extends AbstractApiTest {

@Override
public void setUp() throws Exception {
    super.setUp();
}

@Override
protected ResourceConfig createApplication() {
    final JerseyApplication app = new JerseyApplication();
    app.register(new MockBinder());
    return app;
}

class MockBinder extends AbstractBinder {
    @Override
    protected void configure(){

        //Test Factory
        bindFactory(TestSpecificClientFactory.class).to(SpecificClient.class).in(RequestScoped.class).ranked(1);
    }
}

}

我是否缺少关键的属性/设置?

谢谢

0 个答案:

没有答案