Использование инъекции зависимостей в Джерси в автономном приложении

У меня есть интерфейс здесь

interface Idemo{
  public int getDemo(int i);
}

И это одна реализация

class DemoImpl implements Idemo{
  @Override
  public int getDemo(int i){
    return i+10;
  }
}

И есть класс, который зависит от Idemo

class Sample{
  @Inject
  Idemo demo;

  public int getSample(int i){
    return demo.getDemo(i);
  }
}

Теперь скажите, что я хочу проверить образец класса

public class SampleTest extends JerseyTest {
  @Inject
  Sample s; 

  @Override
  protected Application configure() {
    AbstractBinder binder = new AbstractBinder() {
      @Override
      protected void configure() {
        bind(Demo.class).to(Idemo.class);
        bind(Sample.class).to(Sample.class); //**doesn't work**
      }
    };
    ResourceConfig config = new ResourceConfig(Sample.class);
    config.register(binder);
    return config;
  }
  @Test
  public void test_getSample() {
    assertEquals(15, s.getSample(5)); //null pointer exception
  }
}

Здесь экземпляр Sample не создается и s остается нулевым. Я полагаю, это потому, что к тому времени, когда выполнение достигает строки, где указана привязка, этот тестовый класс уже создан. Но я не уверен. С Spring Autowired вместо jersey CDI те же работы

Если бы Sample был классом ресурса / контроллера, тестовая среда создала бы его экземпляр без необходимости его внедрения, но возможно ли протестировать любой другой не веб-класс с использованием Jersey DI?

Ответы на вопрос(2)

Ваш ответ на вопрос