Проверка логики 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, это здесь Если вы заинтересованы.