2011-06-27 59 views
0

行 - 所以,我一直在試圖尋找這個,但我可能有我的理解(因此措辭)的問題是錯誤的,所以我會盡我所能解釋和希望有人可以理解我需要做的事情並指出我朝着正確的方向 - 在這裏。使用moq從屬性返回一個真實的對象

我有一個視圖模型,視圖模型和適配器,我模擬 - 沒有問題,但我想寫的斷言將檢查設置視圖模型的某些屬性更新某個對象的某些屬性本身就是適配器的一個屬性。我知道如何使用安裝程序來說任何時候一個方法被稱爲返回「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; 
} 

OK - 謝謝...

回答

3

你就不能在Setup調用中使用Returns?也許我誤解了,雖然這個問題...

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

this是開始尋找起訂量的技巧和竅門:-)

+0

是的 - 這些都是正確的......我只是在我的代碼中有錯誤。謝謝 – Kenn

0

可以使用SetupGet的好去處:

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

更新:我剛剛瞭解到,您也可以使用Setup - 請參閱Setup() vs SetupGet() - 根據您使用的答案,「可能是......個人偏好「