Доброго времени суток!
Вот такой простейший код (показан ниже): мне нужно сделать заглушку для interface IGetMyVal.
Для этого создаю сборку имитаций. Сборка создается, но в ней куча ошибок. Причина - сборка не понимает, что такое Range.
Имя типа или пространства имен "Range" отсутствует в пространстве имен "ml1::Microsoft.Office.Interop.Excel" (пропущена ссылка на сборку?) [C:\Users\Admin\documents\visual studio 2013\Projects\MyLib1\UnitTestProject1\obj\Debug\Fakes\ml1\f.csproj] C:\Users\Admin\documents\visual studio 2013\Projects\MyLib1\UnitTestProject1\f.cs 100 117 UnitTestProject1
Причем в тестовом модуле ссылку на библиотеки Excel я сделал (Microsoft.Office.Core, Microsoft.Office.Interop.Excel ).
Чтобы ничего лишнего не генерировалось сделал настройку генерации:
Т.е. у меня генерится только заглушка для интерфейса и ничего более.
Вопрос: никто с этим не сталкивался c тестированием, где используются COM объекты? Как избавиться от этой проблемы?
Как сделать видимым Range? Исправить сгенерированный код я не могу. Он регенерится заново при каждом построении проекта.
Пытался задать это вопрос на других формах - тишина. Неужели я первый, кто пишет тест на MSTest, где встречаются COM объекты?
using Excel = Microsoft.Office.Interop.Excel; namespace MyLib1 { public interface IGetMyVal { string GetMyVal(Excel.Range rng, string startWith); } public class Class1 { IGetMyVal _GetMyVal; public Class1(IGetMyVal GetMyVal) { _GetMyVal = GetMyVal; } public string GetStr(Excel.Range rng, string startWith) { return _GetMyVal.GetMyVal(rng, startWith); } } }