Rhino Mocks 3.5测试没有调用属性setter

时间:2010-05-25 10:22:21

标签: c# rhino-mocks

是否可以测试是否未使用Rhino Mocks 3.5调用属性设置器?

2 个答案:

答案 0 :(得分:5)

这完全有可能:

public class OneProperty
{
    virtual public int MyInt
    {
        get;
        set;
    }
}

[Test]
public void IntWasSet()
{
    var prop = Rhino.Mocks.MockRepository.GenerateMock<OneProperty>();

    prop.MyInt = 5;

    prop.AssertWasNotCalled(x => x.MyInt = Arg<int>.Is.Anything);

    prop.VerifyAllExpectations();
}

在Rhino Mocks 3.5上运行此测试会导致以下错误:

  

错误和失败:1)测试错误:   InterfacerTests.TestMatchesInterface.IntWasSet   Rhino.Mocks.Exceptions.ExpectationViolationException   :期待那样   OneProperty.set_MyInt(什么);将   不被称为,但它被发现了   对嘲笑的实际调用   对象

我发现了Arg<T>语法from this part of the Rhino documentation

答案 1 :(得分:2)

将属性设置为测试中的某个已知值。调用不会更改属性的代码,然后声明该属性与它相同。不应该为此使用Rhino Mocks。