免责声明:Prism新手.我正疯狂地阅读,以弥补失去的时间虽然:)
上下文:我需要为使用Prism构建的WPF应用程序编写自动验收测试.
问题:我发现在没有UI的情况下尝试编写支持ViewModels以及他们需要的所有内容是令人费解的.
我可能在这里错了... Prism允许你用命名占位符(区域)标记shell.不同的模块(独立单元)使用相应的RegionNames注册其视图.视图还依赖于通过MEF/Unity注入的ViewModel(ctor注入).
因此,编写应用程序将委托给Prism(或更重要的是View).这似乎是一种视图优先的方法.这样可以在没有用户界面的情况下启动应用程序.使用UI进行测试是一件痛苦的事.
我正在寻找的是一个演示者第一种方法,它在没有UI的情况下组成整个对象(ViewModel和依赖关系)图.
var viewModel = Someone.ComposeAndGet<ShellViewModel>();
Run Code Online (Sandbox Code Playgroud)
是否可以通过不同的方式编写应用程序或不支持Prism4?
[更新:2011年12月]
http://compositewpf.codeplex.com/discussions/283065
发布在棱镜论坛上以获得更多亮点; 似乎不可能.建议使用UI测试进行验收测试.Prism组成UI; 因此对观点有着至关重要的依赖性.
我喜欢 Prism 框架,但是我很少使用 Prism 的区域,因为我觉得它迫使我采用视图优先的方法。
我不喜欢使用 View-First,因为我觉得它消除了使用 MVVM 设计模式的一些优点,例如保持层独立和单元测试。如果您的视图负责创建 ViewModel,那么要测试您的 ViewModel,您要么需要创建视图来创建 ViewModel,要么需要手动创建 ViewModel。
我还认为,理想的 MVVM 应用程序应该允许您使用任何 UI(甚至命令行)运行应用程序,并且通过使用区域,我将 ViewModel 限制为 Prism 界面。
有时我仍然会使用 Prism 的区域,但通常仅用于启动页面(例如 TitleBarRegion、MenuRegion、ContentRegion)
归档时间: |
|
查看次数: |
604 次 |
最近记录: |