Drawing.Image 最小起订量或单元测试不允许?
Drawing.Image Not allowed in Moq or Unit Test?
我正在尝试对将图像(图像类型,而不是文件路径)加载到虚拟机堆栈的方法进行单元测试。
我有一个 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");
在 class 测试中,我使用 System.Drawing
非常好,以便将图像用作类型。
但是在单元测试代码中,尽管使用了 System.Drawing
或任何变体,但我在 It.IsAny<Image>()
中的图像下出现错误。
The type or namespace name 'Image' could not be found (are you missing
a using directive or an assembly reference?)
我想验证图像类型的对象是否被放置在堆栈中,但无法使用 Image
作为类型是个问题,我无法继续。
有什么原因导致我无法在单元测试中使用 System.Drawing
吗?或者有没有一种简单的方法可以实现我的目标。
System.Drawing
可能不会默认包含在您的单元测试项目中,而其他项目类型很可能会默认包含它。
确保您在单元测试项目中有对 System.Drawing
的引用,然后您应该能够在使用适当的命名空间后解析 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");
在 class 测试中,我使用 System.Drawing
非常好,以便将图像用作类型。
但是在单元测试代码中,尽管使用了 System.Drawing
或任何变体,但我在 It.IsAny<Image>()
中的图像下出现错误。
The type or namespace name 'Image' could not be found (are you missing a using directive or an assembly reference?)
我想验证图像类型的对象是否被放置在堆栈中,但无法使用 Image
作为类型是个问题,我无法继续。
有什么原因导致我无法在单元测试中使用 System.Drawing
吗?或者有没有一种简单的方法可以实现我的目标。
System.Drawing
可能不会默认包含在您的单元测试项目中,而其他项目类型很可能会默认包含它。
确保您在单元测试项目中有对 System.Drawing
的引用,然后您应该能够在使用适当的命名空间后解析 Image
。
为新项目和单元测试项目使用默认引用的示例: