c# - stub 只读属性的行为

标签 c# rhino-mocks stub

public interface ICell
        {
            int Value{get;}

            void IncrementValue();
        }

我想在 RhinoMocks 中为这个接口(interface)创建一个 stub 。 我有一个只读属性,我想在每次调用 IncrementValue() 方法时增加他的值。这可能吗?我不想为此 stub 创建一个新类。

最佳答案

我和 Jay 有类似的建议,只是更短。不确定这是否有一些缺点。

   int count = 0;

    var mock = MockRepository.GenerateStub<ICell>();
    mock.Stub(p => p.Value).WhenCalled(a => a.ReturnValue = count).Return(42);
    mock.Stub(p => p.IncrementValue()).WhenCalled(a => {
        count = (int)count+1; 
    });

Return(42) 放在那里说“值返回一些东西,不要抛出”并且 WhenCalled(a => a.ReturnValue = count) 覆盖返回值 42 与计数的当前值。

关于c# - stub 只读属性的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4632050/

相关文章:

c# - 解析字符串中的名称

c# - linux 上的 ASP.NET CORE 5.0 TLS 1.2 问题但在 asp.net core 3.1 上正在运行

使用 RhinoMocks 的 C# 模拟 Request.Browser.MajorVersion

c# - 你能解释一下 StrictMock 和 Partialmock 之间的区别吗?

unit-testing - "Self-mocking"使用 Rhino Mocks

c# - 设置由字符串给出的枚举类型的属性

c# - 在 C# ASP.net Webforms 中有条件地包含 css

ruby - 使用和不使用 Rails 的快速 (Rspec) 测试

javascript - 使用 Jasmine 在 JavaScript 中插入 WebSocket

java - 如何使用 thenReturn 上课?