我聽說某個地方嘲笑一個實體是一件壞事,你應該只嘲笑服務(即使我們沒有做全面的DDD,但是「有點」DDD)。嘲笑一個實體?
因此,鑑於以下典型故事,您如何爲它編寫測試?
- 如果客戶具有「首選」狀態,則應在事件發生時通知她。
優先地位是值得依賴於其他的東西,比如,客戶最近購買了10只小工具,或他的名字與「A」等開始無論如何,讓我們假設我們已經實現了這個功能。我如何爲上述故事撰寫測試?具體來說,我對這種情況下可測試性要求會如何影響我的設計感興趣。
- 我可以使用一些先進的模擬框架(如隔離器),它讓我模擬非虛擬屬性。測試性和設計沒有關聯,沒有問題。
- 我可以使IsPreferred屬性虛擬和模擬它(實際上是存根)。不知道爲什麼,但感覺很髒。查看帖子頂部的問題。另外,不知道它如何改進我的設計。 2a。隱藏ICustomer界面背後的實體並對其進行嘲弄。完全不冷。
- 我可以讓它成爲一個可讀寫的屬性,但這將是一個非常糟糕的設計決定。
你如何處理這樣的故事?
「我聽說過某處」 - >在哪裏? –
當前設置的首選狀態如何? –
@丹尼爾不記得了,也許在我的想象中。 – ulu