【发布时间】:2009-10-08 15:50:20
【问题描述】:
是否可以使用 Rhino Mocks 的新 AAA 语法创建“严格”模拟?我看到的问题是我正在模拟的库经常返回 null 作为有效的返回值(我在我的函数中处理),所以使用默认的模拟我永远无法确定我是否测试了所有路径或者我忘记设置一些期望。
【问题讨论】:
标签: c# .net unit-testing rhino-mocks
是否可以使用 Rhino Mocks 的新 AAA 语法创建“严格”模拟?我看到的问题是我正在模拟的库经常返回 null 作为有效的返回值(我在我的函数中处理),所以使用默认的模拟我永远无法确定我是否测试了所有路径或者我忘记设置一些期望。
【问题讨论】:
标签: c# .net unit-testing rhino-mocks
我终于有了 Rhino Mocks 3.6:MockRepository.GenerateStrictMock<T>()。 GenerateMock 不会创建严格的模拟。
【讨论】:
MockRepository.GenerateMock<T>() 应该返回一个“严格”模拟 - 而不是 MockRepository.GenerateStub<T>(),但您不能只定义一个返回 null 的显式方法设置吗?
【讨论】:
试试新语法
MockRepository.GenerateStrictMock; MockRepository.GenerateMock;
【讨论】:
它们的功能已经改变,GenerateMock() 不会返回严格的模拟。 StrictMock 仍然可以使用。只是不在新语法下。
Ayende 会谈more about how CreateMock is deprecated, replaced by StrictMock here。
注意:
添加了新答案,以便人们可以轻松找到 Ayende 对更改的想法。
【讨论】:
MockRepository.GenerateStrictMock;生成一个惊人的模拟。
MockRepository.GenerateMock;生成一个动态模拟。
【讨论】: