Moq - приведение типа объекта и сравнение - PullRequest
0 голосов
/ 05 марта 2012

Я пытаюсь использовать IHTMLSelectElement с Moq.Мой код выглядит примерно так:

// create a select element
var selectElem = new Mock<IHTMLSelectElement>(MockBehavior.Strict);
// set the select element
selectElem.Setup(f => f.length).Returns(20);
selectElem.Setup(f => f.name).Returns("selectElem");            
// get the object
IHTMLSelectElement ihse = selectElem.Object;

Затем в моем методе производственного кода я делаю:

var selectEle = (element as mshtml.IHTMLSelectElement);
if (selectEle != null)
{

Моя проблема в том, что приведение типов не работает, потому что при использовании MoqТип на самом деле: Castle.Proxies.IHTMLSelectElementProxy_1

Приведение этого к IHTMLSelectElement возвращает нулевой объект.

Любая идея о том, как я могу заставить эту работу работать?

1 Ответ

1 голос
/ 05 марта 2012

Вам нужно будет сделать его инъекционным, либо свойство, либо входной параметр метода, в зависимости от кода.И затем вы можете добавить объект MOQ.Две строки вашего кода не должны делать "as", это должно иметь дело с правильным типом элемента напрямую.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...