2011-01-10 59 views
3

是否可以使用一些模擬框架爲我自己的類聲明性地使用Spring進行聲明?我知道在Spring中有一些標準模擬,但我希望能夠聲明式地模擬我自己的類。使用Spring嘲笑我的自定義依賴項

只是爲了檢查我不會這樣做錯誤的方式:想法是爲每個我想要做的集成測試都配備一對JUnit測試和Spring配置,嘲笑除特定集成方面以外的所有內容測試(比如我對兩種不同的數據服務有依賴性,一次測試一個),並最小化指定模擬的重複Java代碼的數量。

回答

1

我使用特殊的context.xml來做到這一點,它包含了特殊bean的真實XML和覆蓋定義。我很高興知道有更好,更聰明的解決方案,但這一個對我來說工作得很好。

+0

您可以將XML文件拆分爲幾個,將保持相同的bean和在測試和生產之間更改的bean分組,然後在每個測試中導入相關的XML文件。 – Chochos

0

說真的 - 你真的不想這樣做。

我已經看到了一些試圖做這個項目,我保證,你將最終

數量龐大的春季檔,每一個稍有不同,但你不知道什麼和爲什麼。 意大利麪代碼,因爲「聲明式」定義不允許弄清楚你的對象做得太多,或者做錯了合作者。

在系統的情況下,也有一些在這您可以存根出對外服務點...

我建議你閱讀全球海洋觀測系統 - 它致力於一本書來回答這類的問題。

http://www.growing-object-oriented-software.com/

0

如果只有你想改變一些豆類,以及你想改變他們的所有測試,你可以看看在@Primary註釋。

你必須用@Primary註釋測試的特殊類,然後它會「覆蓋」真實的類。 - 但是隻有在你想爲所有測試做這件事時才使用它。