Я пытаюсь переопределить пару инъекций для тестирования с помощью определенного тестового модуля. Это отлично работает, как и для настоящих синглетонов, например:
...custom module...
bind(SomeClass.class).toInstance(instanceOfMockedClass);
...
Теперь это создает проблемы, когда ContextSingletons
нужно перезаписать. Выполнение того же, что и выше, очевидно, вводит один и тот же экземпляр для всех контекстов (служб, действий), где был бы правильным отдельный экземпляр. Я попытался разобраться с ContextScopedProvider
, но не смог найти способ использовать его в конструкции bind(...).toProvider(...)
, поскольку сам этот класс не реализует интерфейс Guice Provider<T>
.
Как этого добиться?
(также задан вопрос на https://groups.google.com/forum/?fromgroups=#!topic/roboguice/MnWGrHFDOsQ)