事情從我的假存儲庫開始很簡單,其中包含硬編碼的實體列表。ASP.NET MVC單元測試 - 假庫已變得笨拙
隨着我的進步,我的共享虛假資料庫變得臃腫。我不斷地向這些列表添加新的屬性和新的實體。這使得維護非常困難,而且很難看到測試正在做什麼。我相信這是一種稱爲「General Fixture」的反模式。
在研究ASP.NET MVC單元測試中,我看到了兩種方法來準備傳遞給控制器的存儲庫設備。
- 創建將在所有的測試中共享
- 存儲庫的模擬部分,每個部分的測試
我很想去探索選項#2以上之內,但我讀過硬編碼的假庫模擬倉庫並不是一個好主意,在我測試控制器對集合進行操作的場景中(例如,使用分頁/排序/過濾功能),這似乎相當艱鉅。
我對社會問題...
準備倉庫燈具方法的工作遠遠超出了基本的例子是什麼?
這些都是很好的答案。自從我發佈此問題以模擬單個測試的存儲庫並且運行良好以來,我一直在使用Moq。我相信按照您的建議使用兩種方法都是有效的。我也發現創建例程生成用於模擬的數據非常有用 - 這樣我就不會複製代碼來創建數據,但數據也不會共享。 :) – Mayo 2010-11-30 15:53:29