2009-02-08 12 views
11

Se si dispone di una proprietà:Rhino Mocks - Verificare Property Set quando Nr ha Get

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

come si usa Rhino Mocks per controllare che

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

si chiama.

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

non viene compilato.

risposta

4

Si dovrebbe solo essere in grado di fare una verifica tutto sulla proprietà set

[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, questo sta usando MsTests quindi potrebbe essere necessario regolare le caratteristiche di conseguenza – bendewey

+1

Grazie - per ragioni che sono totalmente al di là di me, quando ho provato quello che hai suggerito non ha funzionato. Lo fa ora. Sciocco me - grazie. –

+0

Quindi ottengo la risposta approvata? – 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"); 
} 
Problemi correlati