2016-12-06 9 views
2

Я пытаюсь выполнить модульный тест методом, который загружает изображение (типа Image, а не путь к файлу) в стек виртуальной машины.Drawing.Image Не допускается в Moq или 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"); 

В классе тестируемый я для того, чтобы использовать изображение в качестве типа использования System.Drawing прекрасно.

Однако в тестовом коде модуля, несмотря на использование System.Drawing или любого другого варианта, я получаю сообщение об ошибке в Image It.IsAny<Image>().

Тип или пространство имен имя «Изображение» не может быть найден (вы пропали без вести с помощью директивы или ссылка на сборку?)

Я хочу, чтобы убедиться, что объект типа изображения был помещен в стеке, но не в состоянии использовать 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 по умолчанию, где это было для тестируемого проекта. Вручное добавление его к ссылкам позволило мне использовать 'using System.Drawing'' и теперь компилируется отлично. Очень признателен. – James