C# 使用moq从属性返回真实对象

C# 使用moq从属性返回真实对象,c#,mvvm,moq,C#,Mvvm,Moq,好吧,我一直在寻找这个问题,但我可能对这个问题的理解(因此措辞)有误,所以我会尽我最大的努力解释,希望有人能理解我需要做什么,并为我指明正确的方向 我有一个视图模型,视图模型采用我模拟的和适配器-没有问题,但是我想写的断言将检查设置视图模型的某些属性是否更新了对象的某些属性,而对象本身就是适配器的属性。我知道如何使用设置来表示任何时候一个方法被称为return“X”,但这不是一个方法,它是一个属性,我被难住了——看起来很简单 下面是视图模型中的一些代码,让您了解我在做什么 public bool

好吧,我一直在寻找这个问题,但我可能对这个问题的理解(因此措辞)有误,所以我会尽我最大的努力解释,希望有人能理解我需要做什么,并为我指明正确的方向

我有一个视图模型,视图模型采用我模拟的和适配器-没有问题,但是我想写的断言将检查设置视图模型的某些属性是否更新了对象的某些属性,而对象本身就是适配器的属性。我知道如何使用设置来表示任何时候一个方法被称为return“X”,但这不是一个方法,它是一个属性,我被难住了——看起来很简单

下面是视图模型中的一些代码,让您了解我在做什么

public bool OnlyUseFedEx
{
  get { return vendorQualitativeMetricsAdapter.VendorQualitativeMetric.OnlyUseFedEx; }
  set { vendorQualitativeMetricsAdapter.VendorQualitativeMetric.OnlyUseFedEx = value; }
}
以下是我从测试方法开始的内容

    [TestMethod]
public void VQM_ShippingViewModel_Can_Update_Adapters_vendorManagementProxy()
{
  var vendorManagementProxy = new VendorManagementProxy();
  var vqmAdapter = new Mock<IVendorQualitativeMetricsAdapter>();
  //This is where I would like to say - always return that vendorManagementProxy object I created. 
  vqmAdapter.Setup(a => a.VendorQualitativeMetric ???
  ShippingViewModel shippingViewModel;
}
[TestMethod]
public void VQM_ShippingViewModel_Can_Update_Adapters_vendoormanagementproxy()
{
var vendorManagementProxy=新的vendorManagementProxy();
var vqmAdapter=new Mock();
//这就是我想说的——始终返回我创建的vendorManagementProxy对象。
vqmAdapter.Setup(a=>a.VendorQualitiveMetric???
ShippingViewModel ShippingViewModel;
}

好的-谢谢…

你不能在
设置
通话中使用
返回
吗?也许我误解了这个问题

vqmAdapter.Setup(a => a.VenderQualitativeMetric).Returns(venderManagementProxy)

是一个开始寻找MoQ提示和窍门的好地方:-)

您不能在
设置
呼叫中使用
返回
?也许我误解了这个问题

vqmAdapter.Setup(a => a.VenderQualitativeMetric).Returns(venderManagementProxy)

是开始寻找MoQ提示和技巧的好地方:-)

您可以使用
SetupGet

vqmAdapter.SetupGet(a => a.VendorQualitativeMetric).Returns(vendorManagementProxy);


更新:我刚刚了解到,您也可以使用
设置
-参见-根据该答案,您使用“可能是…个人偏好”

您可以使用
设置

vqmAdapter.SetupGet(a => a.VendorQualitativeMetric).Returns(vendorManagementProxy);


更新:我刚刚了解到,你也可以使用
设置
-参见-根据答案,你使用“可能是…个人偏好”

是的-这两个都是正确的。。。我的代码中有个错误。谢谢-这两个都是正确的。。。我的代码中有个错误。谢谢