2016-12-06 54 views
2

我試圖單元測試一個方法,加載到虛擬機堆棧上的圖像(類型圖像,而不是文件路徑)。Drawing.Image在Moq或單元測試中不允許?

我有一個Verify電話,看起來像這樣:

mockVM.Verify(q => q.Stack.Push(It.IsAny<Image>()), Times.AtLeastOnce());

爲了請檢查是否以下Stack.Push調用發生在方法下的測試。這種方法的有關部分是這樣的:

Image newImage = Image.FromFile(@"" + Operands[0]); 
VirtualMachine.Stack.Push(newImage); 
Console.WriteLine("Hit loadimage"); 

在類下測試,以使用圖像作爲一種類型的我使用System.Drawing完全正常。

但是在單元測試代碼中,儘管使用了System.Drawing或任何變體,但我在It.IsAny<Image>()的圖像下出現了一個錯誤。

類型或命名空間名稱「形象」找不到(是否缺少 using指令或程序集引用?)

我想驗證類型圖像的對象放在在堆棧上,但不能使用Image作爲一種類型是一個問題,我不能進步。

有什麼理由不能在單元測試中使用System.Drawing?還是有一個簡單的方法來實現我的目標。

+0

不是It.IsAny的語法...'It.IsAny ()'? – Kritner

+0

只是改變它,因爲我鍵入,是的。儘管如此。 – James

+1

你說你得到一個錯誤,但沒有指定你的錯誤 – Kritner

回答

2

System.Drawing可能不是作爲單元測試項目的引用默認包括在內,其中很可能將其默認包含在其他項目類型中。

確保您在單元測試項目中提供了System.Drawing,那麼在使用適當的名稱空間之後,您應該能夠解析Image

使用一個新的項目和單元測試項目默認引用

例子:

enter image description here

+0

邦的錢。默認情況下,它不是在UnitTestProject引用中生成的,而是在測試項目中生成的。手動添加到引用允許我使用'使用System.Drawing;'現在編譯好。非常感激。 – James