Способ, которым я справляюсь с этим, заключается в том, чтобы иметь интерфейс IDialogService
, который зарегистрирован в вашем IOC и доступен вашим ViewModels.
Служба затем предоставляет различные способы взаимодействия с «пользователем».Таким образом, у вас может быть метод ConfirmMessage, который возвращает истину или ложь на основе того, что пользователь принимает диалог.
Тогда для модульного тестирования, скажем, у вас может быть другая реализация IDialogService
, которая позволяет вам подавать готовые ответы наваша ViewModel во время тестирования.