0
我已經有了一個稍微複雜的方法,需要經過很好的測試。祕密醬汁的東西。好吧,也許不是那麼酷,但我不能100%確定如何去完成這些設置。這種情況源於我以前的問題here。我沒有使用過犀牛模擬器,所以我仍然不好/不知道語法,所以請隨時提出一些建議。嘲諷一種方法並返回不同的結果
Public Function GenerateAllNotifications(ByVal days As List(Of Integer)) As List(Of MailMessage) Implements INotificationService.GenerateAllNotifications
Dim someStuff = _someService.GetThingsThatExpireBetween(day1, day2)
'build some messages
Return messages
End Function
我在我的測試設置正在尋找這樣的...我知道這是不對的,雖然
Dim fakeStuff = New SomeItem()
Dim fakeContext = New List(Of Provider)
fakeContext.Add(fakeStuff)
Dim someService = MockRepository.GenerateStub(Of ISomeService)()
someService.Stub(Function(x) x.GetThingsThatExpireBetween(30, 60)).IgnoreArguments().Return(fakeContext.AsQueryable)
_fakeNotificationService = New NotificationService(someService)
我想做到的是返回一個execpted項目進行相應的服務。業務規則是基於給定到期的消息的集合。因此,如果某個實體在30天內過期,則該消息反映出,如果它是60,90,則將其放入消息中。我認爲我的問題是我需要每次都有不同的對象回來(someitem)......?
您能否澄清一下您試圖實現的目標?也許至少粘貼處理消息的代碼大綱? – Grzenio 2010-07-16 13:32:35
消息是最終結果,因此它不像獲取數據來正確構建這些數據那樣重要(這是一種過濾方法)。做出這個信息很簡單,但要做出正確的事情並不容易。我需要不同的對象返回每個GetThings,因爲它們會被過濾出來(這是預期的)...我開始懷疑是否需要根據輸入單獨返回每一個(30,60等) – jeriley 2010-07-16 13:46:12
當你存根/模擬一個方法你指定你返回指定值的參數。你不能只定義一些存根嗎?如果你想有人幫助你,你真的需要粘貼一些簡化的代碼。 – Grzenio 2010-07-16 13:50:08