草庐IT

SetupSet

全部标签

c# - Moq 中 SetupSet 和 SetupProperty 的区别

我知道SetupSet是在Moq中设置属性的旧方法。它现在已经过时了,但我的智能感知显示两者都没有标记为过时。谁能指出它们之间的实际区别? 最佳答案 我大概发现了一个不同之处,如下所示。如果您尝试模拟只读属性,则必须使用SetupGet,因为SetupProperty在这种情况下不起作用。而如果您想设置期望值,SetupProperty可用于非只读属性。例如,下面是行不通的publicinterfaceIXyz{intId{get;}}//TestSideCodevar_mock=newMock();_mock.SetupPrope

c# - SetupSet() 已过时。代替什么?

假设我想使用Moq在setter上创建回调,以将设置的属性存储在我自己的字段中供以后使用。(人为的例子-但它已经到了问题的重点。)我可以做这样的事情:myMock.SetupSet(x=>x.MyProperty).Callback(value=>myLocalVariable=value);而且效果很好。但是,根据Intellisense,SetupSet已过时。但它没有说明应该使用什么作为替代方案。我知道最小起订量提供SetupProperty,它将使用支持字段Autowiring属性。但这不是我要找的。我想将设置值捕获到我自己的变量中。我应该如何使用非过时的方法来做到这一点?

c# - SetupSet() 已过时。代替什么?

假设我想使用Moq在setter上创建回调,以将设置的属性存储在我自己的字段中供以后使用。(人为的例子-但它已经到了问题的重点。)我可以做这样的事情:myMock.SetupSet(x=>x.MyProperty).Callback(value=>myLocalVariable=value);而且效果很好。但是,根据Intellisense,SetupSet已过时。但它没有说明应该使用什么作为替代方案。我知道最小起订量提供SetupProperty,它将使用支持字段Autowiring属性。但这不是我要找的。我想将设置值捕获到我自己的变量中。我应该如何使用非过时的方法来做到这一点?

c# - 使用 SetupGet 和 SetupSet 模拟属性 - 这可行,但为什么呢?

使用Moq我正在模拟一个属性,ReportTheReport{get;放;在接口(interface)ISessionData上,以便我可以检查在此属性上设置的值。为此,我使用了SetupGet和SetupSet,如下所示://class-levelfieldsprotectedReport_sessionReport;protectedMockSessionData{get;privateset;}在我的设置方法中...SessionData=newMock();SessionData.SetupSet(s=>s.TheReport=It.IsAny()).Callback(r=>{