Проверка логики Windows Forms с помощью NUnit
я погружаюсь в модульное тестирование, и я хотел бы знать, можно ли протестировать некоторые специальные функции диалога или формы с NUnit. Я пробовал NUnitForms, но ему не хватает хорошей документации и кажется, что никто не занимается этим проектом. Это правда?
Если у вас есть опыт тестирования Windows Forms, пожалуйста, укажите мне правильный путь. Любые комментарии или информация приветствуются. Спасибо!
4 ответов
У меня такая же проблема с NUnitForms. Я могу запустить форму и нажать кнопку, но я не могу понять, как заставить диалоги работать, и я не могу найти много об этом вообще.
Я думаю, что этот блог был самым полезным:
http://blogs.msdn.com/john_daddamio/archive/2006/11/06/getting-started-with-nunitforms.aspx
мне пришлось переназначить сборку NUnitForms в моем приложении.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 )
Я надеюсь, что этот поток поможет мне, но я все еще могу попробовать project white (http://www.codeplex.com/white).
автоматическое тестирование GUI имеет тенденцию быть очень хрупким, и я бы предположил, что именно поэтому NUnitForms не поддерживается (если это правда).
избавьте себя от агонии и посмотрите на применение шаблонов дизайна, таких как Контроллер Вида Модели или Модель-Представление-Модель Представления. Это позволит вам модульно протестировать логику пользовательского интерфейса гораздо более надежным способом.
У меня был большой успех с использованием UI Automation framework, которая входит в состав .Net 3.0 и более поздних версий. Я написал учебник это может помочь вам начать.
есть очень хороший и простой для понимания пример структуры MVC, производимой Ayende, см. запись в своем блоге для более подробной информации. Это работает, добавив очень легкий infastructure к вашему приложению, что провода до кнопок событий автоматически для вас.
используя этот тип фреймворка, вы вынуждены не иметь никакой логики в своем представлении, только в своем Презентаторе. Затем вы можете легко проверить логику, не касаясь Приложения WinForms.
Я запустил порт Effectus для .NET 2.0 и WinForms, это здесь Если вы заинтересованы.