gpt4 book ai didi

c# - 您如何正确测试 MVVM 中的 View ?

转载 作者:行者123 更新时间:2023-11-30 12:18:51 25 4
gpt4 key购买 nike

我看过一些关于 MVVM 中的单元测试 View 模型的文章,以及测试本身如何成为 View 模型的消费者,测试 viewModel 和模型的功能。但是,我想知道如何测试 View (UI) 以确保它们正确连接到我的 View 模型。我不想编写一个测试,例如,按下一个按钮以确保将某些内容写入数据库,因为这正在有效地测试我的 VM,我已经完成了。

例如,我希望能够编写一个测试来确保一个按钮连接到一个特定的命令。因此防止任何人出现并删除按钮的命令,使其不再起作用。

这可能吗?谢谢。

最佳答案

但是如果有人(希望是设计师)想要将 Button 更改为 MenuItem 怎么办?你的测试会失败,你必须修复它。 MVVM 的主要好处之一是,设计人员可以真正自由地按照他们喜欢的方式安排和重新安排界面,而无需与开发人员进行过多的来回交流。针对 UI 编写单元测试会破坏这种好处。

我有点唱反调了。我并不是说测试 UI 完全没有用,而且在任何人的代码库中都没有一席之地。我的意思是返回正在减少,您可能正在用一个问题换取另一个问题。

至于如何在“隔离”中实际测试 View 。 . .我认为最简单的方法是使用带有注入(inject)模拟服务的 View 模型。您的 View 模型可以使用服务定位器来获取依赖服务,因此您的单元测试可以注入(inject)虚拟服务。然后,您可以结合使用命名元素引用、可视树爬网和 WPF UI 自动化 API 来断言不同的可视元素具有按预期设置的属性。

关于c# - 您如何正确测试 MVVM 中的 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1254713/

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