出于测试目的,我希望将JerseyApplication中的工厂替换为其他工厂,不幸的是,没有考虑适当的绑定,而是始终使用JerseyApplication.class
以下是通过JerseyApplication
在org.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);
}
}
}
我是否缺少关键的属性/设置?
谢谢