2012-02-23 134 views
0

对于一个新的项目,我正在寻找OSGi在依赖注入方面提供的功能,而且我有点像iPOJO(纯注解,而不是xml支持)。然而,从测试的角度来看,Blueprint可能会更好,因为对于不同的测试用例(功能测试)来说,重写蓝图配置可能就足够了,并且会有其他服务立即注入。OSGi中的依赖注入vs测试

您对这个问题有什么看法? 我可以放弃基于XML的Blueprint(我讨厌XML)而不牺牲测试方面的灵活性吗?

回答

1

是的。您可以。我不认为你会亵渎什么。事实上,iPOJO的蓝图功能更强大,它支持诸如“现场注入”,“服务生命周期控制”和“配置管理”等蓝图不支持的功能(reference)。

但是,蓝图是OSGi Enterprise Specification的一部分,如果有关系的话。

我还没有和Blueprint一起工作,只是看它的规范 - 除非你是一个java bean家伙,否则我会远离它。另外,我更喜欢iPOJO而不是DS,因为在很多情况下,它似乎更智能,而且做得正确。

+0

你有关于如何测试基于iPOJO的OSGi应用程序的文档吗?谢谢! – Zoltan 2012-02-24 00:53:19

+0

我想这取决于你想要做什么样的测试。像集成测试这样的事情会更加困难 - 但是再次,对于iPOJO,我不会真正测试这一点,因为我会把我的信任放在框架中。如果你指的是单元测试,那么某种模拟框架将会有所帮助(这个似乎是OSGi友好的:http://easymock.org/)。 – drozzy 2012-02-24 03:37:55

0

关于iPOJO单元测试,就可以使用构造(或构造函数注入)注入模拟服务和有效的测试组件的行为:

所以两种选择:

  • 要么你有一个额外的构造函数注入依赖关系 需要使用模拟
  • 或者您的组件正在使用构造函数 注入,然后您只需使用模拟对象调用构造函数

如果您尝试进行集成测试,您可以使用pax考试并部署您的软件包(除iPOJO外)。