Модульный тест, чтобы убедиться, что приложение WinForms не загружает сборку более одного раза - PullRequest
0 голосов
/ 23 июня 2011

Я пытаюсь написать модульный тест (NUnit), который будет:

  1. Создать экземпляр некоторой формы.
  2. Подключить соответствующее событие AssemblyLoad в AppDomain для сборкиa Список загруженных имен сборок.
  3. Если одна и та же сборка загружается дважды, произойдет сбой.
  4. В противном случае - пройти.

Кажется, я не могу получить логику дляэто ... Тест всегда проходит.

Можно ли это сделать?

Ответы [ 2 ]

8 голосов
/ 23 июня 2011

Трудно заставить ваш модульный тест провалиться.CLR уже гарантирует, что сборка загружается только один раз.Очень важно, что одна и та же сборка загружается более одного раза, что приводит к очень сложной диагностике ошибок приведения во время выполнения.

Вы должны использовать ужасную Assembly.LoadFile (), чтобы отключить ошибку.Старайтесь не проверять вещи, которые вы никогда не должны делать для начала.

1 голос
/ 23 июня 2011

После того, как вы загрузите сборку в AppDomain, вы не сможете загрузить ее снова, и, похоже, также не существует метода Assembly.Unload .Ну, технически вы можете выгрузить сборку, если вы выгрузите все домены приложений , которые ее загрузили.

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