对于一个新的项目,我正在寻找OSGi在依赖注入方面提供的功能,而且我有点像iPOJO(纯注解,而不是xml支持)。然而,从测试的角度来看,Blueprint可能会更好,因为对于不同的测试用例(功能测试)来说,重写蓝图配置可能就足够了,并且会有其他服务立即注入。OSGi中的依赖注入vs测试
您对这个问题有什么看法? 我可以放弃基于XML的Blueprint(我讨厌XML)而不牺牲测试方面的灵活性吗?
对于一个新的项目,我正在寻找OSGi在依赖注入方面提供的功能,而且我有点像iPOJO(纯注解,而不是xml支持)。然而,从测试的角度来看,Blueprint可能会更好,因为对于不同的测试用例(功能测试)来说,重写蓝图配置可能就足够了,并且会有其他服务立即注入。OSGi中的依赖注入vs测试
您对这个问题有什么看法? 我可以放弃基于XML的Blueprint(我讨厌XML)而不牺牲测试方面的灵活性吗?
是的。您可以。我不认为你会亵渎什么。事实上,iPOJO的蓝图功能更强大,它支持诸如“现场注入”,“服务生命周期控制”和“配置管理”等蓝图不支持的功能(reference)。
但是,蓝图是OSGi Enterprise Specification的一部分,如果有关系的话。
我还没有和Blueprint一起工作,只是看它的规范 - 除非你是一个java bean家伙,否则我会远离它。另外,我更喜欢iPOJO而不是DS,因为在很多情况下,它似乎更智能,而且做得正确。
关于iPOJO单元测试,就可以使用构造(或构造函数注入)注入模拟服务和有效的测试组件的行为:
所以两种选择:
如果您尝试进行集成测试,您可以使用pax考试并部署您的软件包(除iPOJO外)。
你有关于如何测试基于iPOJO的OSGi应用程序的文档吗?谢谢! – Zoltan 2012-02-24 00:53:19
我想这取决于你想要做什么样的测试。像集成测试这样的事情会更加困难 - 但是再次,对于iPOJO,我不会真正测试这一点,因为我会把我的信任放在框架中。如果你指的是单元测试,那么某种模拟框架将会有所帮助(这个似乎是OSGi友好的:http://easymock.org/)。 – drozzy 2012-02-24 03:37:55