gpt4 book ai didi

c# - WPF & MVVM - 单元测试和弹出消息框或对话框

转载 作者:太空宇宙 更新时间:2023-11-03 17:54:19 26 4
gpt4 key购买 nike

我正在用 MVVM 编写一个应用程序,到目前为止效果很好。
但我正在 ViewModel 中工作,这会引发一个错误,我想向用户展示让他们知道。

我可以在我的 ViewModel (VM) 中做这样的事情:

MessageBox.Show(errorMessage);

或更可能是这样的:
new ErrorMessageWindow(errorMessage).ShowDialog()

所以我可以设计它。

问题是我正在从 VM 创建一个 UI 弹出窗口。
我正在为应用程序创建单元测试,它也会弹出窗口并停止运行,直到它被手动关闭。

寻找一个好的方法。

我正在考虑在 VM 中引发一个事件 - 但由于 View 确实不了解 VM 或其属性,我不知道我将如何订阅它。

我没有使用任何外部框架——我宁愿自己实现任何东西。

最佳答案

我通常为 viewmodel 提供了一种方法来表明它需要引发错误。您可以通过依赖注入(inject)、将其传递给构造函数等来完成此操作。实现由包含应用程序或绑定(bind) View 提供。

当您进行测试时,您将传入“显示错误消息”功能的测试实现,该功能仅验证它是否被调用以及它是否请求了正确的错误消息。理想情况下,您将 View 模型限制为将资源名称和参数数组传递给格式字符串,以便它也适用于国际化。

关于c# - WPF & MVVM - 单元测试和弹出消息框或对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15663320/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com