Модульное тестирование с зависимостью от внешнего хоста - PullRequest
1 голос
/ 03 февраля 2010

Я хотел бы запустить некоторые модульные тесты NUnit для класса в сборке библиотеки классов .Net, которая предназначена для размещения во внешнем процессе (вне моего контроля) и загружается во время выполнения.

Класс, который я хочу протестировать, происходит от класса, определенного в exe хоста, который требует его создания в хост-процессе. Любая попытка создания экземпляра производного базового класса вне хост-процесса завершается неудачей с исключением.

Поэтому я не могу протестировать класс в графическом или консольном хосте NUnit, просто загрузив сборку и создав экземпляр класса. У кого-нибудь есть предложения относительно того, как я могу выполнить эти тесты?

Ответы [ 2 ]

2 голосов
/ 03 февраля 2010

Я бы, вероятно, разделил класс на два класса: «внешний» класс, производный от типа во внешнем процессе, и «внутренний» класс, который выполняет всю работу, но не наследует ничего из того, что вы делаете не контроль.

Затем проверьте внутренний класс и оставьте внешний класс как можно лишенным логики.

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

0 голосов
/ 03 февраля 2010

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

Вы можете создать макет, который будет вести себя как класс вашего хозяина.

Включая:

  • макет загрузки библиотек времени выполнения (из тех, что вас интересуют)
  • макет всех возможных выходных данных конкретного метода
  • макет исключения

Так как я не являюсь разработчиком .NET, я не знаком с деталями, но я знаю, что движок насмешки в .NET довольно мощный.

...