【问题标题】:Strict Mocks using AAA syntax of Rhino Mocks严格的 Mocks 使用 Rhino Mocks 的 AAA 语法
【发布时间】:2009-10-08 15:50:20
【问题描述】:

是否可以使用 Rhino Mocks 的新 AAA 语法创建“严格”模拟?我看到的问题是我正在模拟的库经常返回 null 作为有效的返回值(我在我的函数中处理),所以使用默认的模拟我永远无法确定我是否测试了所有路径或者我忘记设置一些期望。

【问题讨论】:

    标签: c# .net unit-testing rhino-mocks


    【解决方案1】:

    我终于有了 Rhino Mocks 3.6:MockRepository.GenerateStrictMock<T>()。 GenerateMock 不会创建严格的模拟。

    【讨论】:

      【解决方案2】:

      MockRepository.GenerateMock<T>() 应该返回一个“严格”模拟 - 而不是 MockRepository.GenerateStub<T>(),但您不能只定义一个返回 null 的显式方法设置吗?

      【讨论】:

      • 我只能看到 MockRepository.GenerateMock(),但它不起作用 - 意外调用仍然只是返回 null。
      • 这只会增加痛苦,因为每次我忘记设置方法以确定它是哪一个时,我都必须调试测试。
      • 对不起,我记错了名字。现已编辑。
      【解决方案3】:

      试试新语法

      MockRepository.GenerateStrictMock; MockRepository.GenerateMock;

      【讨论】:

        【解决方案4】:

        它们的功能已经改变,GenerateMock() 不会返回严格的模拟。 StrictMock 仍然可以使用。只是不在新语法下。

        Ayende 会谈more about how CreateMock is deprecated, replaced by StrictMock here

        注意:
        添加了新答案,以便人们可以轻松找到 Ayende 对更改的想法。

        【讨论】:

          【解决方案5】:

          MockRepository.GenerateStrictMock;生成一个惊人的模拟。
          MockRepository.GenerateMock;生成一个动态模拟。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2010-10-20
            • 2011-01-08
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-04-01
            相关资源
            最近更新 更多