Prism WPF:如何最小化 return IDialogResult.Result == Buttonresult.ok 的回调

Prism WPF: How to moq the callback to return IDialogResult.Result == Buttonresult.ok

我要最小起订量以下接口:

public interface IDialogService
{
   void ShowDialog(string name, IDialogParameters parameters, Action<IDialogResult> callback);
}

我将它与以下代码一起使用:

 protected bool AbortDeleteDialog()
    {
        bool abort= true; 
        DialogService.ShowDialog("Should xy be deleted?", [some parameters...],
            r => abort = r.Result != ButtonResult.OK);
        return abort;
    }

出于测试目的,我想 r.Result 有时匹配 ButtonResult.OK 有时不匹配。最小起订量有什么办法吗?

您可以使用 callbacks:

var mock = new Mock<IDialogService>();

mock.Setup(x => x.ShowDialog(It.IsAny<string>(), It.IsAny<IDialogParameters>(), It.IsAny<Action<IDialogResult>>())
    .Callback((string name, IDialogParameters parameters, Action<IDialogResult> callback) =>
        callback(new DialogResult(ButtonResult.Ok)));

...

thing.AbortDeleteDialog();