2015-10-13 121 views
3

我們的Spring webapp實現了很多自動裝配的接口。一個接口實現中的一些方法做了很多工作。該方法本身有一個公共入口點,大部分邏輯被抽象爲許多私有方法。由於需要進行大量測試,因此單元和集成測試非常笨重。在編寫集成測試方面,我正在考慮一種測試Autowire實現而不是接口的模式,將這些私有方法的範圍更改爲公開,但不會將其暴露給擁有的接口。Spring單元測試:自動直接實現接口的實現?

這將允許單元測試這些子例程,同時保持合同清除了許多方法,沒有人會在服務範圍之外使用它們。

這是一個已知的模式?這種方法有什麼缺點?

+2

這是我的理解,它實際上更有利於測試服務實現,而不僅僅是接口。一種方法是在單元測試中使用實現作爲參數,這樣你只關心合同。由於單元測試不需要涵蓋所有這些通常應該足夠。但是,如果您還想測試合同之外的東西,我不確定是否指定了標準方法。但是請繼續測試實現。 –

+0

謝謝,如果你想記錄這個答案,我會給它檢查 – IcedDante

回答

0

我的理解是,測試服務實現而不僅僅是接口更有益。

這樣做的一種方法是將實現用作單元測試的參數,這樣您只關心合同。

由於單元測試不需要覆蓋所有這些通常應該足夠的東西。

但是,如果您還想測試合同之外的東西,我不確定是否指定了標準方法。但是請繼續測試實現。