2009-08-28 3 views
3

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

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

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

ответ

3

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

+0

Я также предполагаю, что я могу найти и создать экземпляр желаемого класса самостоятельно (большинство из них имеют беззаданные конструкторы), а затем инжектор вводит его члены – artemb