Мы разрабатываем приложения для использования в AutoCAD.
По сути, мы создаем проект библиотеки классов и загружаем .dll в autoCAD с помощью команды (NETLOAD).
Таким образом, мы можем использовать команды, «палитры», пользовательские элементы управления, формы и т. Д ...
AutoDesk предоставляет API через некоторые библиотеки DLL, работающие в каталоге их программ.
При обращении к этим dll вы можете вызывать dll только во время выполнения, загружая ваше приложение в AutoCAD (это защита лицензирования от AutoDesk).
Для нас, при разработке, это не проблема, нам нужно визуально протестировать в контексте AutoCAD, поэтому мы просто устанавливаем свойства отладки, чтобы они запускали acad.exe и загружали нашу dll со скриптом в acad .exe параметры.
Проблема в том, что при попытке модульного тестирования нашего кода NUnit или mstest не запускаются из контекста AutoCAD и также не могут его запустить.
Существует инструмент под названием Gallio, который предоставил интерфейс с AutoCAD, чтобы он мог запускать модульное тестирование через IPC с именованными каналами.
Однако, это решение, для меня, слишком хлопотно. Я хочу иметь возможность быстро писать тесты, не покидая мою любимую среду разработки.
Итак, что из "хорошего дизайна" было бы хорошим подходом к этой проблеме? Я думаю, что в основном мне понадобится тестируемая кодовая база, которая не ссылается на DLL-файлы AutoCAD, а не тестируемая, которая действительно ссылается на не тестируемые DLL-файлы AutoCAD.
Я уверен, что есть способы заставить это работать: (IOC, DI, Adapter Pattern, ...). Я просто глубоко не разбираюсь в этих принципах и поэтому не знаю, какой маршрут лучше всего подойдет для моих целей. и цели.