Rhino Mocks - 当Property没有获取时验证属性集

11 setter rhino-mocks properties

如果您有房产:

public class Fred
{
   public string UserName
   {
     set
     {
        userName=value;
     }
   }
}
Run Code Online (Sandbox Code Playgroud)

你如何使用Rhino Mocks来检查它

fred= new Fred();
fred.UserName="Jim";
Run Code Online (Sandbox Code Playgroud)

叫做.

Expect.Call(mockFred.UserName).SetPropertyWithArgument("Jim");
Run Code Online (Sandbox Code Playgroud)

不编译.

Dar*_*rov 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");
}
Run Code Online (Sandbox Code Playgroud)


ben*_*wey 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; }
}
Run Code Online (Sandbox Code Playgroud)