2013-11-25 7 views
4

Некоторые из методов плагина, для которых я хотел бы написать модульные тесты, принимают COM-объекты, переданные непосредственно Visual Studio. Например:как написать единичный тест для плагина Visual Studio?

public void OnConnection(object application, ext_ConnectMode connectMode, object addInInst, ref Array custom) 
{ 
    DTE2 d = (DTE2)application; 
    ... 
} 

Поскольку эти объекты не могут быть сериализованы, я не могу иметь тестовый код модуля, считывающий их с диска.

Помимо создания экземпляров пользовательских классов, которые реализуют те же интерфейсы, связанные с COM, и которые имеют свойства, которые возвращают бессмысленные/сомнительные данные, есть ли способ протестировать этот метод, не создавая Visual Studio?

ответ

1

Мне обычно сложнее тестировать этот тип кода. Это в основном потому, что, как вы сказали, жесткие зависимости с COM-интерфейсами.

Возможно, вы сможете абстрагироваться от некоторых зависимостей и протестировать эти типы в изоляции. См. Некоторые образцы, см. here.

Лично я бы не рекомендовал писать единицы испытаний против этих методов. Это скорее точка входа в плагин, и он в основном организует вызовы. Вероятно, вы не получите большого значения Unit Testing этого метода.

Ниже приведены некоторые, которые могут помочь вам в направлении написания тестов с использованием ООД экземпляру

DTE and Unit Testing

How to Unit Test Visual Studio AddIn interacting with VS DOM

Смежные вопросы