【问题标题】:Testing a .Net C# WPF MVVM application from an external application从外部应用程序测试 .Net C# WPF MVVM 应用程序
【发布时间】:2010-07-29 14:27:20
【问题描述】:

我有一个使用 MVVM 的大型应用程序。该模型主要位于 C++ DLL 中。 ViewModel 在 C# 中,我以通常的方式将我的 WPF 控件绑定到 ViewModel。

应用已准备好进行集成测试。我可以从应用程序内部驱动测试,但我想将测试移到另一个进程中,这样我就可以最大限度地减少测试对应用程序的污染。

我想自己用 C# 和 WPF 编写测试应用程序,但我有点不知道该怎么做。

注意:如果有用于在 .Net 应用程序中测试 ViewModel 的第三方测试应用程序,我也很想听听!

我想 Process.Start 是最初的进入方式,但从那里我迷路了。

基本上我需要让应用程序正常加载,像往常一样创建它的模型,然后启动 GUI,所以我不能单独驱动单个方法(单元测试风格)。然后我想设置和获取我的 ViewModel 属性,就像我目前在本地测试中所做的那样。

我查看了 James McCafferey 在 MSDN 03/09 上关于测试 WPF 应用程序的文章,但它旨在测试 GUI(基本上是远程按下按钮等),这是我想摆脱的。

反射是这里的方式吗?如果是这样,请记住,我不能简单地反映到“空”视图模型上,它必须连接到我的模型才能测试 VM 属性。

提前致谢

【问题讨论】:

  • 更新:我最终将测试工具放在主应用程序中 - 容易多了!

标签: c# .net wpf mvvm integration-testing


【解决方案1】:

基本上我需要让应用程序正常加载,像往常一样创建它的模型,然后启动 GUI,所以我不能单独驱动各个方法(单元测试风格)。

IcuTest (http://IcuTest.com/) 就是您要找的。它让您可以在单元测试框架中启动应用程序,并让您与模型和方法进行交互。

【讨论】:

  • 看起来 IcuTest 的工作原理是通过比较动作前后的屏幕截图 - 并不是我真正想要的,因为我已经竭尽全力实施 MVVM 以避免这种“蛮力”测试。使用我的进程内测试工具,我可以直接询问我的 ViewModel 的值,无论它们是否等同于视图中的可见实体。我只是想要一种将我的测试工具代码移出进程的方法。
猜你喜欢
  • 1970-01-01
  • 2011-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-22
相关资源
最近更新 更多