Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在WPF MVMM应用程序中测试视图 我刚刚开始在WPF开发的令人兴奋的世界里,已经做了C++开发人员很多年了。p>_Wpf_Mvvm_Functional Testing - Fatal编程技术网

在WPF MVMM应用程序中测试视图 我刚刚开始在WPF开发的令人兴奋的世界里,已经做了C++开发人员很多年了。p>

在WPF MVMM应用程序中测试视图 我刚刚开始在WPF开发的令人兴奋的世界里,已经做了C++开发人员很多年了。p>,wpf,mvvm,functional-testing,Wpf,Mvvm,Functional Testing,当然,使用丰富的用户界面测试应用程序一直都很困难。传统上,在大多数Windows应用程序中,用户界面、用户界面逻辑和应用程序逻辑都是完全相互依赖的,不能单独测试,这是加剧这种情况的一个问题 我非常喜欢MVVM方法,它允许我将UI与应用程序分离,并在我的视图模型上运行大量的自动化测试,我的所有逻辑都在视图模型下,视图是视图模型的一个相当愚蠢的客户端 这一切都很好,并且将应用程序逻辑的测试与应用程序UI巧妙地分开。但是,它没有为实际测试UI本身提供解决方案。尽管视图通常只包含很少的逻辑,但它仍然有可

当然,使用丰富的用户界面测试应用程序一直都很困难。传统上,在大多数Windows应用程序中,用户界面、用户界面逻辑和应用程序逻辑都是完全相互依赖的,不能单独测试,这是加剧这种情况的一个问题

我非常喜欢MVVM方法,它允许我将UI与应用程序分离,并在我的视图模型上运行大量的自动化测试,我的所有逻辑都在视图模型下,视图是视图模型的一个相当愚蠢的客户端

这一切都很好,并且将应用程序逻辑的测试与应用程序UI巧妙地分开。但是,它没有为实际测试UI本身提供解决方案。尽管视图通常只包含很少的逻辑,但它仍然有可能包含大量各种各样的bug

目前测试视图本身的技术水平如何

谢谢
汤姆这是一把双刃剑。我认为这是试图抓住低垂的果实,并从那里开始建设

理论上,MVVM纯粹主义者会说视图的代码中绝对不存在逻辑。例如,使用Prism可以帮助缓解这一问题以及其他不同的框架。因此,从这个角度来看,它开始到达视图中不存在逻辑的点……足够公平了,那么我们将开始测试绑定吗?但是,根据应用程序的大小,您可以知道该投资的回报是多少

我认为这归结起来就是你的底线在哪里?例如,即使您正在测试视图,您也很可能会连接到代码中,此时您正在进行白盒测试。然后,您可以论证黑盒角度,即只有没有内部挂钩的测试才有效。你可以看到它变成了一场恶梦

总的来说,我把重点放在了重要的项目上,并从那里开始,测试在分配的时间内什么是可能的


这样想吧……有了UI,你就可以开始测试每个按钮的颜色,以及位置等等。。。那对我来说太傻了。自动化模型、视图模型和层的大部分UI测试,如果需要,还可以测试视图的绑定。除此之外,我建议每个UI开发人员都应该在他们的工作站上进行特别的手动操作。

WPF和MVVM不会改变测试应用程序UI的过程。它只是从根本上减少了您在执行此操作时会发现的缺陷数量,因为您通常在UI测试期间发现并修复的许多内容现在都在视图模型测试期间找到并修复。

是的,因此在大多数情况下,实际的UI测试仍将归结为一个相当特殊的过程。这是我的一个小小的担心,开发者会为他们的视图模型写大量的测试,然后考虑应用程序的“测试”,而忽略UI的实际测试。即使没有逻辑性,仍然有大量的白盒问题可能是错误的,需要测试。同意,这也取决于组织结构。我现在所在的公司是一家大型企业,因此他们进行了不同层次的测试。从开发人员到QA分析员……再到SA分析员……再到针对被视为运行的各种测试执行的随机外部审计。我个人的感觉是,当构建UI时,在开发过程中会与UI发生很多交互。可以说,它并不像一个后端模块那样混乱,而这个后端模块只是要被安装到一个更大的系统中。