Я погружаюсь в поблочное тестирование, и я хотел бы знать, возможно ли протестировать некоторую специальную функциональность диалогового окна или формы с NUnit. Я попробовал NUnitForms, но он испытывает недостаток в хорошей документации и кажется, что никто не поддерживает тот проект. Действительно ли это верно?
Если у Вас есть опыт при тестировании Windows Forms, укажите на меня правильным способом. Любые комментарии или информация ценятся.Спасибо!
У меня та же проблема с NUnitForms. Я могу запустить форму и нажать на кнопку, но не могу понять, как заставить работать диалоги, и вообще ничего не могу найти.
Я думаю, что этот блог был самым полезным:
http://blogs.msdn.com/john_daddamio/archive/2006/11/06/getting-started-with-nunitforms.aspx
Мне пришлось вернуть сборку NUnitForms в моём app.config, чтобы заставить её работать с последней версией:
<configuration>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="nunit.framework"
publicKeyToken="96d09a1eb7f44a77"
culture="neutral" />
<bindingRedirect oldVersion="2.2.7.0" newVersion="2.5.2.9222" />
</dependentAssembly>
</assemblyBinding>
</runtime>
( http://duncanjasmith.blogspot.com/2007/08/using-nunitforms-with-nunit-framework.html ).
Я надеюсь, что эта нить поможет мне, но я все же могу попробовать проект white ( http://www.codeplex.com/white).
Автоматическое тестирование GUI имеет тенденцию быть очень хрупким, и я предполагаю, что именно поэтому NUnitForms не поддерживается (если это правда).
Избавьте себя от мучений и посмотрите на применение таких шаблонов проектирования, как Контроллер представления модели или Модель представления представления модели . Это позволит вам более надежно тестировать логику пользовательского интерфейса.
Я добился больших успехов в использовании инфраструктуры автоматизации пользовательского интерфейса, которая входит в состав .Net 3.0 и более поздних версий. Я написал учебное пособие , которое может помочь вам начать работу.
Есть очень хороший и простой для понимания пример инфраструктуры MVC, созданной Айенде, см. эту запись в его блоге для получения дополнительных сведений. Это работает путем добавления в ваше приложение очень легкой инфраструктуры, которая автоматически связывает кнопки с событиями.
Используя этот тип фреймворка, вы вынуждены не иметь никакой логики в вашем представлении, только в вашем презентаторе. Затем вы можете легко провести модульное тестирование логики, не касаясь WinForms.
Я начал перенос Effectus на .NET 2.0 и WinForms, он здесь , если вам интересно.