2012-02-23 143 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外)。