Как определить динамические и своевременные привязки с помощью Guice?

Я пытаюсь использовать Guice для тестовой среды на основе TestNG. Этот фреймворк анализирует тестовый класс на наличие зависимостей и предоставляет их, избавляя от необходимости создавать их в тестах.

Guice полностью основан на инъекциях, и я думаю, что он хорошо подходит для фреймворка. Но вопрос в том, как мне определить привязки после того, как я создал инжектор? Это необходимо, потому что тесты могут переопределять привязки, чтобы заменить реализацию по умолчанию моками.

Кроме того, я хочу угадать реализацию во время выполнения в некоторых случаях на основе соглашений об именах классов. Похоже на функцию привязки Just-in-type. Но как мне предоставить своего собственного поставщика привязок «точно в срок»?


person artemb    schedule 28.08.2009    source источник


Ответы (1)


Такое динамическое поведение не поддерживается «из коробки», но вы можете добиться многого, переписав модуль. Взгляните на Guiceberry, в котором уже реализована фиктивная замена для тестов JUnit. (И рассмотрите возможность отправки им патча TestNG, им это понравится!)

person Jesse Wilson    schedule 28.08.2009
comment
Я также предполагаю, что я могу найти и создать экземпляр желаемого класса самостоятельно (большинство из них имеют конструкторы без параметров), а затем заставить инжектор внедрить его члены - person artemb; 29.08.2009