Properties Rhino Mocks-在属性没有Get时验证属性集

Properties Rhino Mocks-在属性没有Get时验证属性集,properties,rhino-mocks,setter,Properties,Rhino Mocks,Setter,如果您有房产: public class Fred { public string UserName { set { userName=value; } } } 如何使用Rhino Mock来检查 fred= new Fred(); fred.UserName="Jim"; 被称为 Expect.Call(mockFred.UserName).SetPropertyWithArgument("Jim"); 不编译。您应该能够对

如果您有房产:

public class Fred
{
   public string UserName
   {
     set
     {
        userName=value;
     }
   }
}
如何使用Rhino Mock来检查

fred= new Fred();
fred.UserName="Jim";
被称为

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

不编译。

您应该能够对属性集执行“全部验证”

[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; }
}
[TestClass]
公开课考试
{
[测试方法]
公开无效测试()
{
var mocker=new MockRepository();
var fredMock=mocker.DynamicMock();
fredMock.UserName=“Name”;
//最后一个调用实际上是对username的set方法的调用
LastCall.IgnoreArguments();
mocker.ReplayAll();
fredMock.UserName=“执行此操作的某些测试。”;
mocker.VerifyAll();
}
}
公共接口IFred
{
字符串用户名{set;}
}
公共界面IFred
{
字符串用户名{set;}
}
[测试]
公共void TestMethod1()
{
IFred fred=MockRepository.GenerateMock();
fred.UserName=“吉姆”;
调用fred.assertwas(x=>x.UserName=“Jim”);
}

FYI,这是在使用MsTests,因此您可能需要相应地调整您的属性谢谢-我完全无法理解的原因,当我尝试您建议的方法时,它不起作用。现在有了。愚蠢的我-谢谢你。那么我得到了批准的答案吗?当然,你得到了-我的第一个问题-仍然在学习关于这个网站-下次会快得多!
public interface IFred
{
    string UserName { set; }
}

[Test]
public void TestMethod1()
{
    IFred fred = MockRepository.GenerateMock<IFred>();
    fred.UserName = "Jim";
    fred.AssertWasCalled(x => x.UserName = "Jim");
}