我有一些API代码,我必须提供解决方案。我正在考虑使用带有此代码的spring。
有一个工厂界面,我们称之为ABCFactory。它返回服务的实例
public interface ABCFactory {
XYZService getXYZService();
}
XYZService它的自身也是一个界面。
现在我有一个我无法修改的TestClass。它使用了一些像
这样的东西ABCFactory abcFactory = (ABCFactory) Class.forName(
"com.me.blah.ABCFactoryImpl").newInstance();
我必须提出ABCFactoryImpl,这一切都很好。但是如果可以对ABCFactoryImpl使用依赖注入,我就不会得到。 Junit测试不了解Spring。甚至可以连接每一件事情,而不会让Junit测试意识到弹簧背景。
PS:我对春季DI的了解是无知的(我知道我需要多少知道/阅读)答案 0 :(得分:0)
这取决于abcFactory是实例字段,静态字段还是局部变量。
如果它是实例字段或静态字段,您可以通过实现特殊的JUnitRunner来执行DI,并使用@RunWith注释测试用例来试试运气。您也可以在其他测试用例中重复使用相同的Runner。
我这样做是为了注入静态字段或实例字段。