как предотвратить появление сообщения во время юнит-тестирования VB.net - PullRequest
2 голосов
/ 06 октября 2011

Интересно, как ты это делаешь?

Поскольку очень раздражает нажимать "ОК" каждый раз, когда появляется окно сообщения.

Ответы [ 2 ]

2 голосов
/ 06 октября 2011

В идеале, окно сообщения должно быть настроено как зависимость, чтобы его можно было смоделировать / заглушить / подделать во время модульного тестирования, примерно так:

public interface IMessageBox
{
  Show(...);
}

Конечно, вам нужно реализоватьинтерфейс в вашем классе оболочки MessageBox.Подробнее о DI: http://en.wikipedia.org/wiki/Dependency_injection

Если сейчас невозможно реорганизовать ваше приложение таким образом, вы можете попробовать этот подход .

0 голосов
/ 06 октября 2011

В идеале, ваши тесты будут проверять вашу бизнес-логику.Я обычно рассматриваю MessageBox как компонент пользовательского интерфейса, а не как пользовательский интерфейс.Это требует изменения потока программы, чтобы ошибки / исключения / проверки происходили независимо от пользовательских уведомлений.IE полагается на IDataErrorInfo вместо исключения для набора свойств.

В тех случаях, когда вы не можете избежать этого и не хотите идти по пути оборачивания окна сообщения и использования насмешек с DI, я использовалтехника установки одноэлементной переменной Public Shared Property RunSilent As Boolean = False в моих приложениях, чтобы указать, что приложение должно работать без вывода сообщений, а затем проверить это свойство перед вызовом окна сообщения, чтобы оно отображалось только в том случае, если мы не работаем без вывода сообщений.А затем в моей настройке модульного теста установите флаг без вывода сообщений на true.Не идеально, но эффективно.

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