В целях тестирования мне нравится заменять фабрику в моем приложении 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);
}
}
}
Я пропустил важное свойство/ настройка?
Спасибо