【问题标题】:Test call from abstract class to base class using rhino mocks使用 rhino 模拟测试从抽象类到基类的调用
【发布时间】:2010-02-25 14:11:22
【问题描述】:

如果有以下课程

public abstract class MyBaseClass : BaseClass
{
    public override string Test(string value)
    {
        return value == null ? value : base.Test(value);
    }
}

使用部分模拟,我实际上可以测试测试代码的第一部分(value = null)。是否可以测试在 value != null 时实际完成对基类的调用这一事实?

【问题讨论】:

  • 你能展示你的模拟用法吗?
  • var mock = MockRepository.GeneratePartialMock(); //某种期望 mock.Test("not_empty");模拟.VerifyAllExpectations();

标签: unit-testing rhino-mocks


【解决方案1】:

不,您不能这样做,因为您的 Test 方法已经覆盖了基本方法,并且没有普通的动态模拟可以拦截 MyBaseClass.Testbase.Test 的调用。

Here's a more detailed explanation,尽管它与起订量有关。然而,同样的论点也适用于 Rhino Mocks 和 here's why

【讨论】:

    【解决方案2】:

    为什么您甚至需要对这段代码进行行为测试并通过模拟使您的生活变得艰难?这看起来像是基于状态的测试的一个很好的候选:您提供输入(值)并对方法的输出进行断言。很多时候保持简单可以节省一天的时间。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-04
      • 1970-01-01
      • 2023-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多