OSGi中的依赖注入与测试

时间:2012-02-23 17:50:58

标签: java testing dependency-injection osgi

对于一个新项目,我正在研究OSGi在依赖注入方面提供的内容,我有点像iPOJO(基于纯注释,而不是xml支持)。

但是,从测试的角度来看,Blueprint可能会更好,从那时起,对于不同的测试用例(功能测试),重写蓝图配置可能就足够了,并且会立即注入其他服务。

您对此主题有何看法? 我是否可以放弃基于XML的蓝图(我讨厌XML)而不牺牲iPOJO的灵活性而不牺牲测试的灵活性?

2 个答案:

答案 0 :(得分:1)

是。您可以。我不认为你会诅咒什么。 事实上,iPOJO比蓝图更强大,它支持诸如“现场注入”,“服务生命周期控制”和“配置管理”之类的东西 - 蓝图没有(reference)。

然而,蓝图是OSGi Enterprise Specification的一部分,如果重要的话。

我没有使用Blueprint,但只是查看它的规范 - 除非你是一个java bean的家伙,我会远离。另外,我更喜欢iPOJO而不是DS,因为在许多情况下它看起来更聪明,而且做得对。

答案 1 :(得分:0)

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

所以有两个选择:

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

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