Тестируйте логику Windows Forms с помощью NUnit - PullRequest
6 голосов
/ 04 февраля 2010

Я углубляюсь в модульное тестирование и хотел бы узнать, можно ли протестировать некоторые специальные функции диалога или формы с помощью NUnit .Я пробовал NUnitForms , но в нем отсутствует хорошая документация, и кажется, что никто не занимается этим проектом.Это правда?

Если у вас есть опыт тестирования Windows Forms, пожалуйста, укажите мне правильный путь.Любые комментарии или информация приветствуются.Спасибо!

Ответы [ 4 ]

3 голосов
/ 04 февраля 2010

У меня такая же проблема с 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).

3 голосов
/ 04 февраля 2010

Автоматическое тестирование графического интерфейса имеет тенденцию быть очень хрупким, и я думаю, что именно поэтому NUnitForms не поддерживается (если это так).

Избавьте себя от мучений и посмотрите на применение шаблонов проектирования, таких как Model View Controller или Model View ViewModel . Это позволит вам более эффективно протестировать логику пользовательского интерфейса.

1 голос
/ 04 февраля 2010

Я добился большого успеха, используя среду автоматизации пользовательского интерфейса, которая входит в состав .Net 3.0 и более поздних версий.Я написал учебник , который может помочь вам начать.

0 голосов
/ 04 февраля 2010

Существует очень хороший и простой для понимания пример MVC-фреймворка, созданного Айенде, для более подробной информации см. эту запись в его блоге. Это работа, добавив в приложение очень легкую инфраструктуру, которая автоматически связывает кнопки с событиями.

Используя этот тип инфраструктуры, вы вынуждены не иметь никакой логики в своем View, только в Presenter. Тогда вы можете легко выполнить модульное тестирование логики, не касаясь WinForms.

Я запустил порт Effectus для .NET 2.0 и WinForms, он здесь , если вам интересно.

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