2009-02-08 21 views
11

जाओ है यदि आप एक संपत्ति है, तो:राइनो Mocks - संपत्ति सेट सत्यापित करें जब संपत्ति नहीं

public class Fred 
{ 
    public string UserName 
    { 
    set 
    { 
     userName=value; 
    } 
    } 
} 

कैसे करना है आपको यह देखना होगा कि

fred= new Fred(); 
fred.UserName="Jim"; 

कहा जाता है राइनो Mocks का उपयोग करें।

Expect.Call(mockFred.UserName).SetPropertyWithArgument("Jim"); 

संकलित नहीं करता है।

उत्तर

4

तुम सिर्फ एक संपत्ति पर सभी को सत्यापित करने के लिए सक्षम होना चाहिए

[TestClass] 
public class FredTests 
{ 
    [TestMethod] 
    public void TestFred() 
    { 
     var mocker = new MockRepository(); 
     var fredMock = mocker.DynamicMock<IFred>(); 

     fredMock.UserName = "Name"; 
     // the last call is actually to the set method of username 
     LastCall.IgnoreArguments(); 
     mocker.ReplayAll(); 

     fredMock.UserName = "Some Test that does this."; 
     mocker.VerifyAll(); 
    } 

} 

public interface IFred 
{ 
    string UserName { set; } 
} 
+0

सेट FYI करें, इस MsTests उपयोग कर रहा है तो आप उसके अनुसार – bendewey

+1

धन्यवाद अपनी विशेषताओं को समायोजित करने के लिए हो सकता है - कारण हैं कि के लिए पूरी तरह से परे, जब मैंने कोशिश की कि आपने जो सुझाव दिया है वह काम नहीं करता है। यह अब करता है मुझे मूर्खतापूर्ण - धन्यवाद। –

+0

तो क्या मुझे अनुमोदित उत्तर मिल सकता है? – bendewey

27
public interface IFred 
{ 
    string UserName { set; } 
} 

[Test] 
public void TestMethod1() 
{ 
    IFred fred = MockRepository.GenerateMock<IFred>(); 
    fred.UserName = "Jim"; 
    fred.AssertWasCalled(x => x.UserName = "Jim"); 
} 
संबंधित मुद्दे