2010-07-19 73 views
1

有時Rhino.Mocks讓我很生氣,因爲沒有足夠的關於主題的文檔,我想這些文檔相對容易。RhinoMocks期待與確切值的呼叫

我想要做的是期望調用AddContact(「test」,contact)。所以對於第二個參數,我必須使用參數約束Property.AllPropertiesMatch(contact)。但是我應該如何使用第一個?

_contactManagerMock 
    .Expect(m => m.AddContact(null, null)) 
    .Constraints(??????????, Property.AllPropertiesMatch(contact)); 

什麼是代替「??????????」

回答

1

我也在尋找這個,以下是一個更詳細的答案。

這是一個如何在Rhino.Mocks中使用AllPropertyMatch的例子。我在Rhino.Mocks 3.6中測試了這個。

//arrange 
var contactManagerMock = MockRepository.GenerateMock<IManager>(); 
contactManagerMock.Expect(m => m.AddContact(
    Arg.Is("test"), 
    Arg<Contact>.Matches(Property.AllPropertiesMatch(contact)))) 

//Act 
//Perform action here that should result in the above expected call 

//Assert 
contactManagerMock.VerifyAllExpectations(); 

這表示期望AddContact方法被調用。第一個參數應該是一個值爲'test'的字符串,第二個參數應該是Contact類型的對象,它具有與聯繫人實例相同的所有屬性。 調用VerifyAllExpectations將執行斷言。

有關Rhino.Mocks網站的更多信息。