Синглтоны для упрощения модульных тестов в устаревшей кодовой базе. Хорошая идея или нет?

Друзья, У меня обширная база кода .Net, и я пытаюсь познакомить команду с модульным тестированием. Они хорошие ребята, но для них все это в новинку (честно говоря, для меня это тоже в новинку).

Одна из проблем заключается в том, что кодовая база интенсивно использует статические классы в System.IO, в них много -домашние библиотеки статических классов и классов не записываются в интерфейсы (если для этого нет реальной причины в дизайне).

Я разрабатываю стратегию упрощения работы с использованием NUnit и FakeItEasy.

Для решения зависимости статических классов Я написал инструмент, который генерирует классы-оболочки и интерфейсы для существующих статических классов. например, в файле конфигурации я говорю, что мне нужны оболочки для Каталог и файл System.IO , инструмент генерирует сборку с кодом по строкам. . .

У меня действительно странная проблема, когда у меня есть приложение, которое выполняет множество сложных манипуляций с изображениями с помощью GDI +. Например, кадрирование, масштабирование и т. Д. Мое приложение отлично работает в .net 2.0, но в .net 4.0 я получаю сообщения от моих пользователей о том, что оно вылетает из-за ошибки gdi + «нехватка памяти». Теперь я знаю, что ошибка gdi + «нехватка памяти» - это уловка для множества ошибок, но почему она должна работать в .net 2.0, а НЕ в .net 4.

В частности, у меня есть элемент управления, который рисует «слои» друг на друга, чтобы создать составное растровое изображение. этот элемент управления отлично работал в .net 2.0, а НЕ в .net 4.

Это происходит, когда у меня загружен 10-мегапиксельный jpeg из файловой системы, и я применяю масштабирование и трансформирую изображение.

, чтобы дать еще более подробную информацию. г.

При использовании maven-buildnumber-plugin 1.0 beta 4 мне кажется, что я могу получить версию svn, если не использую тег в конфигурации. Как только я использую теги и buildnumber , я получаю автоматически увеличивающийся номер, но он больше не соответствует версии svn, и я не знаю, как его вернуть. Есть ли способ использовать номер ревизии svn в ? Документация не очень ясна.

9
задан Jean-Rémy Revy 26 September 2012 в 15:14
поделиться