2013-01-18 58 views
1

EasyMock的3.0文檔(http://www.easymock.org/EasyMock3_0_Documentation.html)聲稱,它是,但並沒有解釋爲什麼(重點煤礦):調用同一類中其他方法的方法:設計不好?

有時你可能需要模擬只有一些一類的方法並保持其他人的正常行爲。 這種情況通常發生在你想要測試一個調用同一類中某些其他方法的方法時。所以你想 保持測試方法的正常行爲,並嘲笑其他人。

在這種情況下,要做的第一件事是考慮重構,因爲 最不好造成設計這個問題的時間。

那麼,這是正確的嗎?爲什麼?

+1

這是一個非常主觀的問題,但是這個概念對我來說聽起來很愚蠢。 –

+1

如果你閱讀Bloch的「Effective Java」,你會發現調用自己的類方法的例子。 – svz

+1

和「清潔代碼」教我們也一樣。簡單的例子:你定義getters並在同一個類中使用它們。這完全不是糟糕的設計。 –

回答

1

一如既往,這取決於。

方法始終調用其他方法;這是(IMO適當的)重構的自然結果,將其他方法切片化。這個問題對我來說就是在你來嘲笑那些微小的正確的方法,不能沒有這樣做的測試。

如果有很多小方法,它們可能更適合包裝在某種協作者類中,此時您會嘲笑協作者而不是內部方法。

此外,這些小內部方法可能是私有方法,其測試是一個爭論的主題。

2

問題不是調用自己的方法,而是嘲笑這些調用的必要性是另一個問題的指示。否則,您可以測試公共方法並驗證其行爲。你不應該關心被調用的其他方法,而只關心可觀察到的行爲。

相關問題