2012-07-30 58 views
0

我正在努力瞭解更多關於安裝和單元測試與Moq。儘管我遇到了一些小問題。最小起訂量返回值

我想要做的是這樣的:

view.Setup(x => x.GetReference("object1")).Returns(object1); 
view.Setup(x => x.GetReference("object2")).Returns(null); 

然而,當我把我的電話就這樣,我從不打的代碼塊,將反應到空語句。我應該如何設置自己的設置,以便當他們被特定的參數調用時,他們會以特定的方式表現出來?

+1

你可能需要在測試設置周圍提供更多代碼,以便了解您所嘗試的內容。該模擬是設置期望測試調用view.GetReference(「object2」),如果你沒有得到你預期的空回報,那麼該模擬沒有被「object2」參數調用。你可以發佈完整的單元測試,並可能發佈將觸發GetReference調用的測試代碼嗎? – 2012-07-30 06:06:12

回答

0

起訂量重載兩種方式返回值:

  1. instance: Returns(instance);
  2. delegate(Func<T>): Returns(()=>new Foo());

我認爲這個問題來說,從返回的方法是將要使用的含混所致。

所以,你需要在顯式類型NULL來傳遞你的代碼的第二個設置爲以下幾種方式:

  1. view.Setup(x => x.GetReference("object2")).Returns((ExplicitType)null);
  2. view.Setup(x => x.GetReference("object2")).Returns(() => null);