Drawing.Image在Moq或单元测试中不允许?

时间:2016-12-06 18:21:51

标签: c# image unit-testing mocking moq

我试图对一个将Image(类型为Image,而不是文件路径)加载到虚拟机堆栈上的方法进行单元测试。

我有一个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完全正常,以便将Image用作类型。

但是在单元测试代码中,尽管使用了System.Drawing或任何变体,但我在It.IsAny<Image>()中的图片下出现了错误。

  

类型或命名空间名称&#39;图像&#39;无法找到(你错过了吗?   using指令或程序集引用?)

我想验证图像类型的对象是否已放置在堆栈上,但无法使用Image作为类型是一个问题,我无法进展。

我有什么理由不能在单元测试中使用System.Drawing吗?或者有一种简单的方法来实现我的目标。

1 个答案:

答案 0 :(得分:2)

System.Drawing可能不会默认包含在您的单元测试项目的参考中,默认情况下,它很可能会包含在其他项目类型中。

确保您在单元测试项目中引用了System.Drawing,然后您应该能够在使用适当的命名空间后解析Image

使用新项目和单元测试项目的默认引用的示例:

enter image description here