重构WPF MVVM以提高可测试性
我继承了一个功能强大但混乱的WPF MVVM应用程序。令我烦恼的是,实际上没有单元测试,这使得采用MVVM有些毫无意义。所以我决定加一些 在抓到低垂的果实后,我开始遇到麻烦了。有很多高度相互依赖的代码,特别是在视图中使用的属性和方法中。例如,一个调用触发一系列“属性更改”事件是很常见的,而这些事件反过来又会触发其他调用,以此类推 这使得测试非常困难,因为您必须编写大量的模拟并设置大量属性来测试单个函数。当然,每个类只需执行一次,然后在每次测试中重新使用mock和ViewModel。但这仍然是一种痛苦,我觉得这是一种错误的方式。当然,最好尝试将代码分解,使其更加模块化 我不确定这在MVVM中有多现实。我陷入了一个恶性循环,因为如果没有好的测试,我担心通过重构来编写好的测试会破坏构建。事实上,它是WPF MVVM是一个更令人担忧的问题,因为没有任何东西能够跟踪视图和ViewModel之间的相互依赖关系——一个粗心的名称更改可能会完全破坏某些东西 我在C#VS2013工作,抓取了ReSharper的试用版,看看它是否有帮助。使用起来很有趣,但到目前为止还没有。我的单元测试经验并不丰富 那么,我怎样才能理智、有条理、安全地处理这个问题呢?我如何使用现有的工具(以及其他工具)来提供帮助重构WPF MVVM以提高可测试性,wpf,unit-testing,mvvm,refactoring,resharper,Wpf,Unit Testing,Mvvm,Refactoring,Resharper,我继承了一个功能强大但混乱的WPF MVVM应用程序。令我烦恼的是,实际上没有单元测试,这使得采用MVVM有些毫无意义。所以我决定加一些 在抓到低垂的果实后,我开始遇到麻烦了。有很多高度相互依赖的代码,特别是在视图中使用的属性和方法中。例如,一个调用触发一系列“属性更改”事件是很常见的,而这些事件反过来又会触发其他调用,以此类推 这使得测试非常困难,因为您必须编写大量的模拟并设置大量属性来测试单个函数。当然,每个类只需执行一次,然后在每次测试中重新使用mock和ViewModel。但这仍然是一种
-与功能相关的接口、实体、DTO公司、项目、功能、合同
-合同执行公司.项目.功能
-功能实现测试公司.项目.功能.测试