Moq тестовая настройка новичка - PullRequest
0 голосов
/ 24 ноября 2011

Я быстро набираю скорость в среде Moq, и у меня есть кнопка в форме, которая запускает другую форму.

Клиент хочет, чтобы форма запускалась независимо от того, было ли выполнено событие Click или DoubleClick.

Мое понимание структуры Moq состоит в том, что она полезна, когда вы хотите смоделировать определенные типы действий: (для краткости я перечислю только несколько типов действий)

  1. Подключение к базе данных
  2. Запись в файл
  3. Определение сетевого подключения

Но я не уверен на 100% в том, как Moq может взаимодействовать с элементами управления Windows и событиями.

Кто-нибудь может привести меня в правильном направлении на простом примере?

1 Ответ

1 голос
/ 24 ноября 2011

Я бы не использовал Moq или юнит-тестирование для этого сценария.

У вас есть код под визуальным контролем, который запускает другую форму. Это по своей сути не подлежит тестированию в изоляции. Вы можете автоматизировать интеграционные тесты с другими инструментами, если хотите.

Moq предназначен для включения модульного тестирования . Модульное тестирование тестирует функциональность (часто логику) изолированно. Это сложно применить к пользовательским интерфейсам.

Обычно вам нужно пойти с одним из вариантов Model-View-Controller , отделить уровень представления от вашей бизнес-логики, использовать интерфейсы и Внедрение зависимостей , чтобы сломать зависимостей, затем используйте изолированную среду, такую ​​как Moq, для создания поддельных реализаций этих интерфейсов, чтобы вы могли независимо тестировать подсистемы.

Если это звучит сложно, то так и есть. Также важно писать большие, проверенные приложения.

Я бы рекомендовал начать с чтения книги Роя Ошерова Искусство модульного тестирования с примерами в .NET . Это охватывает много основ.

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