2009-10-30 56 views
0

說我是否在(NMock)模擬了以下接口。我怎麼能檢查email.Subject ='xyz'?如何檢查NMock中函數參數的屬性

目前即時通訊做這樣的事情

IEmailService s = mocks.NewMock<IEmailService>(); 
Expect.Once.On(s).Method("Send").With(?????) 

s.Send(new Email { Subject = 'rarr' }); 

mocks.Verify...(); 

interface EmailService { void SendEmail(Email email); } 

回答

0

您可以使用一個Has.Property matcher這樣的:

IEmailService s = mocks.NewMock<IEmailService>(); 

Expect.Once.On(s).Method("Send"). 
    With(Has.Property("Subject", Is.EqualTo("rarr"))); 

s.Send(new Email { Subject = 'rarr' }); 
mocks.Verify...(); 

或者你可以寫一個自定義匹配,以驗證該參數的類型是Email和其Subject酒店有正確的值。

0

你要檢查裏面有了主題?這對我來說很奇怪,因爲你正在編寫單元測試用例,所以不需要用這種方法驗證你自己的測試用例,對吧?

+0

我實際上在做一個集成測試。但我想確保調用Send()的對象傳遞正確的參數。 – mrwayne 2009-11-01 21:55:55

+0

不確定這是否適用於NMock。考慮它自己的支持頁面, http://www.nmock.org/support.html – 2009-11-02 02:13:42