【发布时间】:2013-12-10 03:48:16
【问题描述】:
在为 BCL(或任何库)中的类型成员创建 shim 时。我们经常面临这样一种情况,我们想要调用我们已经覆盖的原始方法(无论是在 shim 委托内部还是外部)。例如:
System.Fakes.ShimDateTime.NowGet = () => DateTime.Now.AddDays(-1);
在上面的代码中,当 DateTime.Now 被调用时,我们想要做的就是返回比实际日期少的一天。也许这看起来像是一个人为的例子,所以其他(更)现实的场景是
- 能够捕获和验证传递给特定方法的参数值。
- 要能够计算一次的次数 特定方法/属性由被测代码访问。
我在实际应用程序中遇到了最后一种情况,但无法找到 Fakes on SO 的答案。但是,在深入研究 Fakes 文档后,我找到了答案,因此将其与社区的问题一起发布。
【问题讨论】:
标签: c# unit-testing microsoft-fakes shim