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