У меня есть класс, использующий фабрику для создания некоторого объекта. В моем модульном тесте я хотел бы получить доступ к возвращаемому значению factory. Поскольку фабрика напрямую передается классу, а геттер для созданного объекта не предоставляется, мне нужно перехватить возврат объекта из фабрики.
RealFactory factory = new RealFactory();
RealFactory spy = spy(factory);
TestedClass testedClass = new TestedClass(factory);
// At this point I would like to get a reference to the object created
// and returned by the factory.
Есть ли возможность получить доступ к возвращаемому значению фабрики? Вероятно, с помощью шпиона?
Единственный способ, который я вижу, это имитировать фабричный метод создания.
TestedClass
должен принимать фабрику в качестве зависимости. Разве он не должен просто запрашивать фактический класс, созданный фабрикой. ?(Закон Деметры) - person Ajay George   schedule 17.08.2011TestedClass
является компонентом OSGi. Метод компонента требует при каждом вызове нового объекта, созданного фабрикой. Я преобразовал создание объекта в фабричный класс, чтобы обеспечить лучшую тестируемость. Поскольку созданный объект инициализируется в зависимости от параметров метода, нет возможности просто передать созданные объекты вместо фабрики. - person Marc-Christian Schulze   schedule 17.08.2011