Другие ответы о том, что вы не должны создавать формы внутри консольного приложения или модульного теста, абсолютно верны.
Из вашего обновленного кода похоже, что кто-то уже столкнулся с проблемой созданияЯ уверен, что вы можете выполнить модульное тестирование своего докладчика без необходимости создания экземпляра формы: конструктор FrmLoginPresenter
принимает IFrmLogin
, что, как я предполагаю, является интерфейсом, реализованным FrmLogin
.Эта абстракция существует, чтобы позволить вам выполнить юнит-тестирование FrmLoginPresenter
без необходимости создания фактического FrmLogin
.
. То, что вы хотите сделать, - это создать фиктивную реализацию IFrmLogin
.Это может быть обычный класс, который вы пишете сами, который реализует IFrmLogin
(он может уже существовать в вашем наборе тестов), или он может использовать библиотеку насмешек, такую как Moq или Rhino Mocks.
Затем вы передаете свой макетреализация к конструктору FrmLoginPresenter
.
В конечном счете, похоже, что тот, кто спроектировал ваше приложение, уже задумывался о том, как его следует тестировать модулем.Вам, вероятно, следует пойти и поговорить с ними, чтобы получить полную картину их намерений.