Ранжированный атрибут JerseyApplication bindFactory не учитывается в тестах - PullRequest
0 голосов
/ 26 сентября 2018

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

}

Я пропустил важное свойство/ настройка?

Спасибо

...