- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
假设我想使用 Moq 在 setter 上创建回调,以将设置的属性存储在我自己的字段中供以后使用。 (人为的例子 - 但它已经到了问题的重点。)我可以做这样的事情:
myMock.SetupSet(x => x.MyProperty).Callback(value => myLocalVariable = value);
而且效果很好。但是,根据 Intellisense,SetupSet 已过时。但它没有说明应该使用什么作为替代方案。我知道最小起订量提供 SetupProperty,它将使用支持字段 Autowiring 属性。但这不是我要找的。我想将设置值捕获到我自己的变量中。我应该如何使用非过时的方法来做到这一点?
最佳答案
我使用的是 Moq 版本 3.0.204.1 和 SetupSet
does 对我来说没有标记为过时。但是,有几个 SetupSet
重载位于 MockLegacyExtensions
.您可以避免使用这些并使用 SetupSet
在 Mock
上定义的类。
差异很细微,您需要使用 Action<T>
作为SetupSet
参数,而不是 Func<T, TProperty>
.
下面的调用将调用未弃用的重载:
myMock.SetupSet(p => p.MyProperty = It.IsAny<string>()).Callback<string>(value => myLocalVariable = value);
诀窍是使用 It.IsAny<string>
,这将拦截具有任何值的 setter 调用。
关于c# - SetupSet() 已过时。代替什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2950318/
我正在尝试学习使用 Moq (4) 来测试下面的 C# 代码。我希望通过设置 mockTimer.SetupSet(m => m.Interval = It.IsInRange(
当我尝试使用 Moq 解决不同的情况时,我尝试使用 SetupSet 来解决。这揭示了另一个潜在的问题。 当我在属性上使用 SetupSet 以及方法上的设置时,Moq 似乎“忘记”了方法上的设置已经
假设我想使用 Moq 在 setter 上创建回调,以将设置的属性存储在我自己的字段中供以后使用。 (人为的例子 - 但它已经到了问题的重点。)我可以做这样的事情: myMock.SetupSet(x
我知道我们可以调用 SetupAllProperties() 来自动创建支持属性。但这限制太多,因为它不允许我在 getter/setter 中执行额外的代码。例如,我想创建一个最小起订量的 sett
我知道 SetupSet 是在 Moq 中设置属性的旧方法。它现在已经过时了,但我的智能感知显示两者都没有标记为过时。谁能指出它们之间的实际区别? 最佳答案 我大概发现了一个不同之处,如下所示。 如果
使用 Moq 我正在模拟一个属性,Report TheReport { get;放; 在接口(interface) ISessionData 上,以便我可以检查在此属性上设置的值。 为此,我使用了 S
我在使用以下代码时遇到问题,它添加了一个额外的“{”。 例如: [Setup] AppID={{E643099E-1ECE-474F-B043-1E7A7CE405AA} [Code] const
我是一名优秀的程序员,十分优秀!